-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch to using sbt-circe-org (#348)
* Switch to using sbt-circe-org * Add copyright headers * Disable fatal warnings in CI * Un-crossProject things that don't need it * Remove unneeded code, PR Feedback
- Loading branch information
Showing
36 changed files
with
797 additions
and
237 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,33 +9,71 @@ 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: | ||
build: | ||
name: Build and Test | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest] | ||
scala: [2.12.15, 2.13.8, 3.2.0] | ||
java: [[email protected]] | ||
scala: [2.12.17, 2.13.10, 3.2.1] | ||
java: [temurin@11, temurin@17] | ||
project: [rootJVM] | ||
exclude: | ||
- scala: 2.12.17 | ||
java: temurin@17 | ||
- scala: 3.2.1 | ||
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 | ||
|
@@ -50,15 +88,142 @@ 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: Test | ||
if: matrix.scala != '3.2.0' | ||
run: sbt ++${{ matrix.scala }} clean coverage test coverageReport scalastyle scalafmtCheckAll | ||
- name: Check headers and formatting | ||
if: matrix.java == 'temurin@11' | ||
run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck | ||
|
||
- name: Test | ||
if: matrix.scala == '3.2.0' | ||
run: sbt ++${{ matrix.scala }} clean test | ||
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 circe-yaml-v12/target target circe-yaml-common/target .js/target circe-yaml/target .jvm/target .native/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 circe-yaml-v12/target target circe-yaml-common/target .js/target circe-yaml/target .jvm/target .native/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, 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, 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, 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) | ||
- if: matrix.scala != '3.2.0' | ||
uses: codecov/codecov-action@v1 | ||
- 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 |
---|---|---|
@@ -0,0 +1,4 @@ | ||
rules = [ | ||
OrganizeImports | ||
] | ||
OrganizeImports.removeUnused = false |
Oops, something went wrong.