diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e2139a6 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.yml] +indent_size = 2 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..a691ca4 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,44 @@ +name: Main +on: + push: + branches: + - main + tags: + - 'v*' + pull_request: + branches: + - main + +jobs: + build: + strategy: + matrix: + config: + - image: macos-14 + shortName: macos + - image: ubuntu-24.04 + shortName: linux + - image: windows-2025 + shortName: windows + fail-fast: false + runs-on: ${{ matrix.config.image }} + name: build.${{ matrix.config.shortName }} + steps: + - name: Check out the sources + uses: actions/checkout@v5 + + - name: Set up JDK + uses: actions/setup-java@v5 + with: + distribution: 'temurin' + java-version: '21' + cache: 'sbt' + + - name: Set up SBT + uses: sbt/setup-sbt@v1 + + - name: Build + run: sbt compile + + - name: Test + run: sbt test diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b97469f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/.bsp/ +/.idea/ + +target/ diff --git a/README.md b/README.md index 36cddb6..caf1cc6 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,34 @@ icfpc-2025 ========== -This is the Codingteam's solution for the 2025 ICFPC contest. +This is the Codingteam's solution for the [ICFPC Programming Contest 2025][icfpc-2025]. Team Members ------------ TBD. +Prerequisites +------------- +- Any JDK 21 distribution. If you don't know which one to use, use [Temurin][temurin]. +- [SBT][sbt] (any recent version should suffice, it will auto-download the correct one). + Build ----- -TBD. +```console +$ sbt compile +``` + +Run +--- +```console +$ sbt run +``` + +Test +--- +```console +$ sbt test +``` + +[icfpc-2025]: https://icfpcontest2025.github.io/ +[sbt]: https://www.scala-sbt.org/ +[temurin]: https://adoptium.net/temurin/releases/ diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..62a23f0 --- /dev/null +++ b/build.sbt @@ -0,0 +1,4 @@ +scalaVersion := "3.7.2" +libraryDependencies ++= Seq( + "org.scalatest" %% "scalatest" % "3.2.19" % Test +) diff --git a/project/build.properties b/project/build.properties new file mode 100644 index 0000000..e480c67 --- /dev/null +++ b/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.11.5 diff --git a/src/main/scala/ru/org/codingteam/icfpc_2025/Main.scala b/src/main/scala/ru/org/codingteam/icfpc_2025/Main.scala new file mode 100644 index 0000000..3122417 --- /dev/null +++ b/src/main/scala/ru/org/codingteam/icfpc_2025/Main.scala @@ -0,0 +1,3 @@ +package ru.org.codingteam.icfpc_2025 + +@main def helloWorld(): Unit = println("Hello, world") diff --git a/src/test/scala/ru/org/codingteam/icfpc_2025/TestTests.scala b/src/test/scala/ru/org/codingteam/icfpc_2025/TestTests.scala new file mode 100644 index 0000000..43a5835 --- /dev/null +++ b/src/test/scala/ru/org/codingteam/icfpc_2025/TestTests.scala @@ -0,0 +1,10 @@ +package ru.org.codingteam.icfpc_2025 + +import org.scalatest.funsuite.AnyFunSuite + +class TestTests extends AnyFunSuite: + + test("sanity check") { + val result = 0 + assert(result == 0) + }