-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #394 from circe/pr/sbt-circe-org
Adopt sbt-circe-org
- Loading branch information
Showing
12 changed files
with
358 additions
and
175 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,11 +9,17 @@ name: Continuous Integration | |
|
||
on: | ||
pull_request: | ||
branches: ['**'] | ||
branches: ['**', '!update/**', '!pr/**'] | ||
push: | ||
branches: ['**'] | ||
branches: ['**', '!update/**', '!pr/**'] | ||
tags: [v*] | ||
|
||
env: | ||
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | ||
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | ||
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }} | ||
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | ||
PGP_SECRET: ${{ secrets.PGP_SECRET }} | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
jobs: | ||
|
@@ -22,19 +28,54 @@ jobs: | |
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
scala: [2.12.15, 2.13.8, 3.1.0] | ||
java: [[email protected]] | ||
scala: [2.12.17, 2.13.10, 3.2.1] | ||
java: [temurin@11, temurin@17] | ||
project: [rootJS, rootJVM] | ||
exclude: | ||
- scala: 2.12.17 | ||
java: temurin@17 | ||
- scala: 3.2.1 | ||
java: temurin@17 | ||
- project: rootJS | ||
java: temurin@17 | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout current branch (full) | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Java and Scala | ||
uses: olafurpg/setup-scala@v13 | ||
- name: Download Java (temurin@11) | ||
id: download-java-temurin-11 | ||
if: matrix.java == 'temurin@11' | ||
uses: typelevel/download-java@v1 | ||
with: | ||
java-version: ${{ matrix.java }} | ||
distribution: temurin | ||
java-version: 11 | ||
|
||
- name: Setup Java (temurin@11) | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v2 | ||
with: | ||
distribution: jdkfile | ||
java-version: 11 | ||
jdkFile: ${{ steps.download-java-temurin-11.outputs.jdkFile }} | ||
|
||
- name: Download Java (temurin@17) | ||
id: download-java-temurin-17 | ||
if: matrix.java == 'temurin@17' | ||
uses: typelevel/download-java@v1 | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Setup Java (temurin@17) | ||
if: matrix.java == 'temurin@17' | ||
uses: actions/setup-java@v2 | ||
with: | ||
distribution: jdkfile | ||
java-version: 17 | ||
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }} | ||
|
||
- name: Cache sbt | ||
uses: actions/cache@v2 | ||
|
@@ -49,10 +90,176 @@ jobs: | |
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} | ||
|
||
- name: Check that workflows are up to date | ||
run: sbt ++${{ matrix.scala }} githubWorkflowCheck | ||
run: sbt githubWorkflowCheck | ||
|
||
- name: Check headers and formatting | ||
if: matrix.java == 'temurin@11' | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck | ||
|
||
- name: scalaJSLink | ||
if: matrix.project == 'rootJS' | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' Test/scalaJSLinkerResult | ||
|
||
- name: Test | ||
run: sbt ++${{ matrix.scala }} clean coverage test coverageReport scalafmtCheckAll | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' test | ||
|
||
- name: Check scalafix lints | ||
if: matrix.java == 'temurin@11' | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' 'scalafixAll --check' | ||
|
||
- name: Check binary compatibility | ||
if: matrix.java == 'temurin@11' | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' mimaReportBinaryIssues | ||
|
||
- name: Generate API documentation | ||
if: matrix.java == 'temurin@11' | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' doc | ||
|
||
- name: Make target directories | ||
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') | ||
run: mkdir -p target .js/target .jvm/target .native/target fs2/.js/target fs2/.jvm/target project/target | ||
|
||
- name: Compress target directories | ||
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') | ||
run: tar cf targets.tar target .js/target .jvm/target .native/target fs2/.js/target fs2/.jvm/target project/target | ||
|
||
- name: Upload target directories | ||
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-${{ matrix.scala }}-${{ matrix.project }} | ||
path: targets.tar | ||
|
||
publish: | ||
name: Publish Artifacts | ||
needs: [build] | ||
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
scala: [2.13.10] | ||
java: [temurin@11] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout current branch (full) | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Download Java (temurin@11) | ||
id: download-java-temurin-11 | ||
if: matrix.java == 'temurin@11' | ||
uses: typelevel/download-java@v1 | ||
with: | ||
distribution: temurin | ||
java-version: 11 | ||
|
||
- name: Setup Java (temurin@11) | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v2 | ||
with: | ||
distribution: jdkfile | ||
java-version: 11 | ||
jdkFile: ${{ steps.download-java-temurin-11.outputs.jdkFile }} | ||
|
||
- name: Download Java (temurin@17) | ||
id: download-java-temurin-17 | ||
if: matrix.java == 'temurin@17' | ||
uses: typelevel/download-java@v1 | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Setup Java (temurin@17) | ||
if: matrix.java == 'temurin@17' | ||
uses: actions/setup-java@v2 | ||
with: | ||
distribution: jdkfile | ||
java-version: 17 | ||
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }} | ||
|
||
- 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: Download target directories (2.12.17, rootJS) | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.17-rootJS | ||
|
||
- name: Inflate target directories (2.12.17, rootJS) | ||
run: | | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Download target directories (2.12.17, rootJVM) | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-2.12.17-rootJVM | ||
|
||
- name: Inflate target directories (2.12.17, rootJVM) | ||
run: | | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Download target directories (2.13.10, rootJS) | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-2.13.10-rootJS | ||
|
||
- name: Inflate target directories (2.13.10, rootJS) | ||
run: | | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Download target directories (2.13.10, rootJVM) | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-2.13.10-rootJVM | ||
|
||
- name: Inflate target directories (2.13.10, rootJVM) | ||
run: | | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Download target directories (3.2.1, rootJS) | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-3.2.1-rootJS | ||
|
||
- name: Inflate target directories (3.2.1, rootJS) | ||
run: | | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Download target directories (3.2.1, rootJVM) | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-3.2.1-rootJVM | ||
|
||
- name: Inflate target directories (3.2.1, rootJVM) | ||
run: | | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Import signing key | ||
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == '' | ||
run: echo $PGP_SECRET | base64 -di | gpg --import | ||
|
||
- name: Import signing key and strip passphrase | ||
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != '' | ||
run: | | ||
echo "$PGP_SECRET" | base64 -di > /tmp/signing-key.gpg | ||
echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg | ||
(echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1) | ||
- name: Upload code coverage | ||
uses: codecov/codecov-action@e156083f13aff6830c92fc5faa23505779fbf649 | ||
- name: Publish | ||
run: sbt '++${{ matrix.scala }}' tlRelease |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,3 +9,6 @@ target/ | |
.classpath | ||
.bsp/ | ||
tmp/ | ||
.metals | ||
.vscode | ||
metals.sbt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
rules = [ | ||
OrganizeImports | ||
] | ||
OrganizeImports.removeUnused = false |
Oops, something went wrong.