diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f426225..192f21a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,31 +1,53 @@ -name: Scala CI +# This file was automatically generated by sbt-github-actions using the +# githubWorkflowGenerate task. You should add and commit this file to +# your git repository. It goes without saying that you shouldn't edit +# this file by hand! Instead, if you wish to make changes, you should +# change your sbt build configuration to revise the workflow description +# to meet your needs, then regenerate this file. + +name: Continuous Integration on: + pull_request: + branches: ['**'] push: - branches: [ master ] + branches: ['**'] jobs: build: - - runs-on: ubuntu-latest - + name: Build and Test + strategy: + matrix: + os: [ubuntu-latest] + scala: [3.1.2] + java: [temurin@11] + runs-on: ${{ matrix.os }} steps: - - name: Checkout - uses: actions/checkout@v2 + - name: Checkout current branch (full) + uses: actions/checkout@v2 + with: + fetch-depth: 0 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: '11' - distribution: 'adopt' + - name: Setup Java (temurin@11) + if: matrix.java == 'temurin@11' + uses: actions/setup-java@v2 + with: + distribution: temurin + java-version: 11 - - name: Cache sbt - uses: actions/cache@v2 - with: - path: | - ~/.sbt - ~/.cache/coursier/v1 - key: scala + - name: Cache sbt + uses: actions/cache@v2 + with: + path: | + ~/.sbt + ~/.ivy2/cache + ~/.coursier/cache/v1 + ~/.cache/coursier/v1 + ~/AppData/Local/Coursier/Cache/v1 + ~/Library/Caches/Coursier/v1 + key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} - - name: Run tests - run: sbt +scalafmtCheck "+test" + - name: Check that workflows are up to date + run: sbt ++${{ matrix.scala }} githubWorkflowCheck + + - run: sbt ++${{ matrix.scala }} scalafmtCheck test diff --git a/project/GitHubActionsSettings.scala b/project/GitHubActionsSettings.scala new file mode 100644 index 0000000..77be4b9 --- /dev/null +++ b/project/GitHubActionsSettings.scala @@ -0,0 +1,24 @@ +import sbt._ +import sbtghactions._ +import sbtghactions.GenerativeKeys._ + +/** + * Automatically enriches projects with the following settings (despite the word "override"). + */ +object GitHubActionsSettings extends AutoPlugin { + + /** + * Thus plug-in will automatically be enabled; it has no requirements. + */ + override def trigger: PluginTrigger = AllRequirements + + override def requires: Plugins = + GitHubActionsPlugin + + override val buildSettings: Seq[Setting[_]] = Seq( + githubWorkflowBuild := Seq(WorkflowStep.Sbt(List("scalafmtCheck", "test"))), + githubWorkflowEnv := Map.empty, + githubWorkflowPublishTargetBranches := Nil, + githubWorkflowIncludeClean := false + ) +} diff --git a/project/plugins.sbt b/project/plugins.sbt index c1bc142..aa87ff0 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,6 @@ -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.3.3") -addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3") -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.1") -addSbtPlugin("org.wartremover" % "sbt-wartremover" % "3.0.4") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") +addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.3.3") +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.1") +addSbtPlugin("org.wartremover" % "sbt-wartremover" % "3.0.4") +addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2")