-
Notifications
You must be signed in to change notification settings - Fork 3
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 #153 from danicheg/migrate-to-http4s-plugin
Migrate to http4s plugin
- Loading branch information
Showing
17 changed files
with
519 additions
and
289 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,38 +9,85 @@ 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.13.10] | ||
java: [temurin@11] | ||
java: [temurin@8, temurin@11, temurin@17] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout current branch (full) | ||
uses: actions/checkout@v2 | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Java (temurin@11) | ||
- name: Download Java (temurin@8) | ||
id: download-java-temurin-8 | ||
if: matrix.java == 'temurin@8' | ||
uses: typelevel/download-java@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 8 | ||
|
||
- name: Setup Java (temurin@8) | ||
if: matrix.java == 'temurin@8' | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: jdkfile | ||
java-version: 8 | ||
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }} | ||
|
||
- name: Download Java (temurin@11) | ||
id: download-java-temurin-11 | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v2 | ||
uses: typelevel/download-java@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 11 | ||
|
||
- name: Setup Java (temurin@11) | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v3 | ||
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@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Setup Java (temurin@17) | ||
if: matrix.java == 'temurin@17' | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: jdkfile | ||
java-version: 17 | ||
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }} | ||
|
||
- name: Cache sbt | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.sbt | ||
|
@@ -51,36 +98,46 @@ jobs: | |
~/Library/Caches/Coursier/v1 | ||
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} | ||
|
||
- name: Setup Ruby | ||
if: matrix.scala == '2.13.10' | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: 2.6.0 | ||
- name: Check that workflows are up to date | ||
run: sbt githubWorkflowCheck | ||
|
||
- name: Install microsite dependencies | ||
if: matrix.scala == '2.13.10' | ||
run: | | ||
gem install saas | ||
gem install jekyll -v 3.2.1 | ||
- name: Check headers and formatting | ||
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest' | ||
run: sbt '++ ${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck | ||
|
||
- name: Check that workflows are up to date | ||
run: sbt ++${{ matrix.scala }} githubWorkflowCheck | ||
- name: Test | ||
run: sbt '++ ${{ matrix.scala }}' test | ||
|
||
- name: Check formatting | ||
run: sbt ++${{ matrix.scala }} scalafmtCheckAll scalafmtSbtCheck | ||
- name: Check binary compatibility | ||
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest' | ||
run: sbt '++ ${{ matrix.scala }}' mimaReportBinaryIssues | ||
|
||
- name: Check binary issues | ||
run: sbt ++${{ matrix.scala }} mimaReportBinaryIssues | ||
- name: Generate API documentation | ||
if: matrix.java == 'temurin@8' && matrix.os == 'ubuntu-latest' | ||
run: sbt '++ ${{ matrix.scala }}' doc | ||
|
||
- name: Compile | ||
run: sbt ++${{ matrix.scala }} Test/compile | ||
- name: Check scalafix lints | ||
if: matrix.java == 'temurin@8' && !startsWith(matrix.scala, '3.') | ||
run: sbt '++ ${{ matrix.scala }}' 'scalafixAll --check' | ||
|
||
- name: Run tests | ||
run: sbt ++${{ matrix.scala }} test | ||
- name: Check unused compile dependencies | ||
if: matrix.java == 'temurin@8' | ||
run: sbt '++ ${{ matrix.scala }}' unusedCompileDependenciesTest | ||
|
||
- name: Build the Microsite | ||
if: matrix.scala == '2.13.10' | ||
run: sbt ++${{ matrix.scala }} site/makeMicrosite | ||
- 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 core/target examples/target site/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 core/target examples/target site/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@v3 | ||
with: | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-${{ matrix.scala }} | ||
path: targets.tar | ||
|
||
publish: | ||
name: Publish Artifacts | ||
|
@@ -90,23 +147,64 @@ jobs: | |
matrix: | ||
os: [ubuntu-latest] | ||
scala: [2.13.10] | ||
java: [temurin@11] | ||
java: [temurin@8] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout current branch (full) | ||
uses: actions/checkout@v2 | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Java (temurin@11) | ||
- name: Download Java (temurin@8) | ||
id: download-java-temurin-8 | ||
if: matrix.java == 'temurin@8' | ||
uses: typelevel/download-java@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 8 | ||
|
||
- name: Setup Java (temurin@8) | ||
if: matrix.java == 'temurin@8' | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: jdkfile | ||
java-version: 8 | ||
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }} | ||
|
||
- name: Download Java (temurin@11) | ||
id: download-java-temurin-11 | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v2 | ||
uses: typelevel/download-java@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 11 | ||
|
||
- name: Setup Java (temurin@11) | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v3 | ||
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@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Setup Java (temurin@17) | ||
if: matrix.java == 'temurin@17' | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: jdkfile | ||
java-version: 17 | ||
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }} | ||
|
||
- name: Cache sbt | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.sbt | ||
|
@@ -117,27 +215,111 @@ jobs: | |
~/Library/Caches/Coursier/v1 | ||
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} | ||
|
||
- uses: olafurpg/setup-gpg@v3 | ||
|
||
- name: Setup Ruby | ||
uses: ruby/setup-ruby@v1 | ||
- name: Download target directories (2.13.10) | ||
uses: actions/download-artifact@v3 | ||
with: | ||
ruby-version: 2.6.0 | ||
name: target-${{ matrix.os }}-${{ matrix.java }}-2.13.10 | ||
|
||
- name: Install microsite dependencies | ||
- name: Inflate target directories (2.13.10) | ||
run: | | ||
gem install saas | ||
gem install jekyll -v 3.2.1 | ||
tar xf targets.tar | ||
rm targets.tar | ||
- name: Publish artifacts to Sonatype | ||
env: | ||
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | ||
PGP_SECRET: ${{ secrets.PGP_SECRET }} | ||
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | ||
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | ||
run: sbt ++${{ matrix.scala }} ci-release | ||
- name: Import signing key | ||
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == '' | ||
run: echo $PGP_SECRET | base64 -di | gpg --import | ||
|
||
- uses: christopherdavenport/create-ghpages-ifnotexists@v1 | ||
- 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: Publish microsite | ||
run: sbt ++${{ matrix.scala }} site/publishMicrosite | ||
- name: Publish | ||
run: sbt '++ ${{ matrix.scala }}' tlCiRelease | ||
|
||
site: | ||
name: Generate Site | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
scala: [2.13.10] | ||
java: [temurin@8] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout current branch (full) | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Download Java (temurin@8) | ||
id: download-java-temurin-8 | ||
if: matrix.java == 'temurin@8' | ||
uses: typelevel/download-java@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 8 | ||
|
||
- name: Setup Java (temurin@8) | ||
if: matrix.java == 'temurin@8' | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: jdkfile | ||
java-version: 8 | ||
jdkFile: ${{ steps.download-java-temurin-8.outputs.jdkFile }} | ||
|
||
- name: Download Java (temurin@11) | ||
id: download-java-temurin-11 | ||
if: matrix.java == 'temurin@11' | ||
uses: typelevel/download-java@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 11 | ||
|
||
- name: Setup Java (temurin@11) | ||
if: matrix.java == 'temurin@11' | ||
uses: actions/setup-java@v3 | ||
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@v2 | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Setup Java (temurin@17) | ||
if: matrix.java == 'temurin@17' | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: jdkfile | ||
java-version: 17 | ||
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }} | ||
|
||
- name: Cache sbt | ||
uses: actions/cache@v3 | ||
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: Generate site | ||
run: sbt '++ ${{ matrix.scala }}' docs/tlSite | ||
|
||
- name: Publish site | ||
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | ||
uses: peaceiris/[email protected] | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: site/target/docs/site | ||
keep_files: true |
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,10 @@ | ||
rules = [ | ||
Http4sGeneralLinters | ||
LeakingImplicitClassVal | ||
OrganizeImports | ||
] | ||
|
||
triggered.rules = [ | ||
Http4sGeneralLinters | ||
LeakingImplicitClassVal | ||
] |
Oops, something went wrong.