From 96ffffad15c4ba3301da7f430a8412e19b02d352 Mon Sep 17 00:00:00 2001 From: David An Date: Fri, 25 Oct 2024 12:56:53 -0400 Subject: [PATCH 1/3] scalafmt enforcement --- .github/workflows/format.yaml | 28 ++++++++++++++++++++++++++++ project/Settings.scala | 8 +++++++- project/plugins.sbt | 2 ++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/format.yaml diff --git a/.github/workflows/format.yaml b/.github/workflows/format.yaml new file mode 100644 index 000000000..026d95e81 --- /dev/null +++ b/.github/workflows/format.yaml @@ -0,0 +1,28 @@ +name: Check formatting for modified files with scalafmt + +on: + pull_request: + paths-ignore: ['**.md'] + +jobs: + format: + + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + ref: ${{ github.event.pull_request.head.sha }} + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 + cache: sbt + + - name: Check formatting for modified files + run: | + sbt scalafmtCheckAll diff --git a/project/Settings.scala b/project/Settings.scala index a129c18f5..63410b082 100644 --- a/project/Settings.scala +++ b/project/Settings.scala @@ -5,6 +5,7 @@ import Version._ import sbt.Keys._ import sbt._ import sbtassembly.AssemblyPlugin.autoImport._ +import org.scalafmt.sbt.ScalafmtPlugin.autoImport.scalafmtFilter object Settings { @@ -41,9 +42,14 @@ object Settings { assembly / test := {} ) + val scalafmtSettings = List( + Global / excludeLintKeys += scalafmtFilter, + Global / scalafmtFilter := "diff-ref=HEAD^" + ) + //common settings for all sbt subprojects val commonSettings = - commonBuildSettings ++ commonAssemblySettings ++ commonTestSettings ++ List( + commonBuildSettings ++ commonAssemblySettings ++ commonTestSettings ++ scalafmtSettings ++ List( organization := "org.broadinstitute.dsde.firecloud", scalaVersion := "2.13.15", resolvers := proxyResolvers ++: resolvers.value ++: commonResolvers, diff --git a/project/plugins.sbt b/project/plugins.sbt index b2c566a19..d26c78e72 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,4 +4,6 @@ addSbtPlugin("io.spray" % "sbt-revolver" % "0.10.0") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.2.1") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") + addDependencyTreePlugin From 950436b0e9d1bdd1b7d3863869b1e295b6688064 Mon Sep 17 00:00:00 2001 From: David An Date: Fri, 25 Oct 2024 13:33:44 -0400 Subject: [PATCH 2/3] ignore mass scalafmt --- .git-blame-ignore-revs | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 000000000..8bec14609 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,4 @@ +# .git-blame-ignore-revs + +# scalafmt mass change +579d6ffd2c2d25c0e8cdab7ea83ca630de043c8b From d640b5410b68adf4f441d2494bfa3c3c4045947b Mon Sep 17 00:00:00 2001 From: David An Date: Fri, 25 Oct 2024 14:09:30 -0400 Subject: [PATCH 3/3] set proper commit to ignore mass scalafmt --- .git-blame-ignore-revs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 8bec14609..958413331 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,4 +1,4 @@ # .git-blame-ignore-revs # scalafmt mass change -579d6ffd2c2d25c0e8cdab7ea83ca630de043c8b +3686bb47a5b215733a46c3393a51e950fcaa635f