Update cats-retry to 4.0.0 #52
Workflow file for this run
This file contains hidden or 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
# 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: ['**', '!update/**', '!pr/**'] | |
push: | |
branches: ['**', '!update/**', '!pr/**'] | |
tags: [v*] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }} | |
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} | |
concurrency: | |
group: ${{ github.workflow }} @ ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Test | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
scala: [3] | |
java: [temurin@17] | |
project: [rootJS, rootJVM] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Setup Java (temurin@17) | |
id: setup-java-temurin-17 | |
if: matrix.java == 'temurin@17' | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: sbt update | |
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' | |
run: sbt -v -J-Xmx6g +update | |
- name: Explore Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 24 | |
cache: npm | |
cache-dependency-path: explore/package-lock.json | |
- name: Cache Explore node_modules | |
id: explore-cache-node_modules | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: node_modules-${{ hashFiles('explore/package-lock.json') }} | |
restore-keys: node_modules | |
- name: npm clean-install | |
if: steps.explore-cache-node_modules.outputs.cache-hit != 'true' | |
run: | | |
cd explore | |
npm clean-install --verbose | |
- name: Check that workflows are up to date | |
run: sbt -v -J-Xmx6g githubWorkflowCheck | |
- name: Check headers | |
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-22.04' | |
run: sbt -v -J-Xmx6g 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' headerCheckAll | |
- name: scalaJSLink | |
if: matrix.project == 'rootJS' | |
run: sbt -v -J-Xmx6g 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' Test/scalaJSLinkerResult | |
- name: Test | |
run: sbt -v -J-Xmx6g 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' test | |
- name: Check binary compatibility | |
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-22.04' | |
run: sbt -v -J-Xmx6g 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' mimaReportBinaryIssues | |
- name: Generate API documentation | |
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-22.04' | |
run: sbt -v -J-Xmx6g 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' doc | |
- name: Aggregate coverage reports | |
run: sbt -v -J-Xmx6g 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' coverageReport coverageAggregate | |
- name: Upload code coverage data | |
uses: codecov/codecov-action@v4 | |
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-22.04] | |
java: [temurin@17] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Setup Java (temurin@17) | |
id: setup-java-temurin-17 | |
if: matrix.java == 'temurin@17' | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: sbt update | |
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' | |
run: sbt -v -J-Xmx6g +update | |
- name: Import signing key | |
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == '' | |
env: | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
run: echo $PGP_SECRET | base64 -d -i - | gpg --import | |
- name: Import signing key and strip passphrase | |
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != '' | |
env: | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
run: | | |
echo "$PGP_SECRET" | base64 -d -i - > /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) | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 24 | |
registry-url: 'https://registry.npmjs.org' | |
cache: npm | |
cache-dependency-path: schemas/lib/package-lock.json | |
- name: Publish | |
env: | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }} | |
run: sbt -v -J-Xmx6g tlCiRelease | |
- name: NPM Publish | |
if: startsWith(github.ref, 'refs/tags/v') | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_REPO_TOKEN }} | |
run: sbt -v -J-Xmx6g ui_css/npmPublish schemas_libJS/npmPublish | |
validate-steward: | |
name: Validate Steward Config | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
java: [temurin@11] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout current branch (fast) | |
uses: actions/checkout@v4 | |
- name: Setup Java (temurin@11) | |
id: setup-java-temurin-11 | |
if: matrix.java == 'temurin@11' | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 11 | |
- uses: coursier/setup-action@v1 | |
with: | |
apps: scala-steward | |
- run: scala-steward validate-repo-config .scala-steward.conf | |
observe-deploy: | |
name: Build and publish Observe Docker image / Deploy to Heroku | |
if: (github.ref == 'refs/heads/main' && startsWith(github.repository, 'gemini')) | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
scala: [3.7.3] | |
java: [temurin@17] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Setup Java (temurin@17) | |
id: setup-java-temurin-17 | |
if: matrix.java == 'temurin@17' | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: sbt update | |
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' | |
run: sbt -v -J-Xmx6g +update | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 24 | |
cache: npm | |
cache-dependency-path: modules/web/client/package-lock.json | |
- name: Cache Observe node_modules | |
id: observe-cache-node_modules | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: node_modules-${{ hashFiles('modules/web/client/package-lock.json') }} | |
restore-keys: node_modules | |
- name: npm clean-install | |
if: steps.observe-cache-node_modules.outputs.cache-hit != 'true' | |
run: | | |
cd modules/web/client | |
npm clean-install --verbose | |
- name: Login to Docker Hub | |
run: echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login --username nlsoftware --password-stdin | |
- name: Build and Publish Docker image | |
run: 'sbt -v -J-Xmx6g ''++ ${{ matrix.scala }}'' clean observe_deploy/docker:publish' | |
- name: Deploy and release app in Heroku | |
run: | | |
npm install -g heroku | |
heroku container:login | |
docker tag noirlab/gpp-obs registry.heroku.com/${{ vars.HEROKU_APP_NAME_GN || 'observe-dev-gn' }}/web | |
docker push registry.heroku.com/${{ vars.HEROKU_APP_NAME_GN || 'observe-dev-gn' }}/web | |
heroku container:release web -a ${{ vars.HEROKU_APP_NAME_GN || 'observe-dev-gn' }} -v | |
docker tag noirlab/gpp-obs registry.heroku.com/${{ vars.HEROKU_APP_NAME_GS || 'observe-dev-gs' }}/web | |
docker push registry.heroku.com/${{ vars.HEROKU_APP_NAME_GS || 'observe-dev-gs' }}/web | |
heroku container:release web -a ${{ vars.HEROKU_APP_NAME_GS || 'observe-dev-gs' }} -v | |
explore-deploy: | |
name: Build and deploy Explore | |
if: ((github.ref == 'refs/heads/main' || github.event_name == 'pull_request') && startsWith(github.repository, 'gemini')) | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
java: [temurin@17] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup sbt | |
uses: sbt/setup-sbt@v1 | |
- name: Setup Java (temurin@17) | |
id: setup-java-temurin-17 | |
if: matrix.java == 'temurin@17' | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: sbt update | |
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' | |
run: sbt -v -J-Xmx6g +update | |
- name: Explore Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 24 | |
cache: npm | |
cache-dependency-path: explore/package-lock.json | |
- name: Cache Explore node_modules | |
id: explore-cache-node_modules | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: node_modules-${{ hashFiles('explore/package-lock.json') }} | |
restore-keys: node_modules | |
- name: npm clean-install | |
if: steps.explore-cache-node_modules.outputs.cache-hit != 'true' | |
run: | | |
cd explore | |
npm clean-install --verbose | |
- name: Link Explore | |
run: sbt -v -J-Xmx6g explore_app/buildJsModule | |
- name: Build Explore | |
env: | |
NODE_OPTIONS: '--max-old-space-size=8192' | |
run: | | |
cd explore | |
npm run build | |
- name: override CI_COMMIT_SHA | |
if: github.event_name == 'pull_request' | |
run: echo "CI_COMMIT_SHA=${{ github.event.pull_request.head.sha}}" >> $GITHUB_ENV | |
- name: Deploy staging app to Firebase | |
if: github.ref == 'refs/heads/main' | |
uses: FirebaseExtended/action-hosting-deploy@v0 | |
with: | |
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_EXPLORE_GEMINI }} | |
entryPoint: ./explore | |
projectId: explore-gemini | |
repoToken: ${{ secrets.GITHUB_TOKEN }} | |
target: dev | |
channelId: live | |
- name: Record deployment SHA | |
if: github.ref == 'refs/heads/main' | |
run: | | |
# Create a deployment record with commit SHA for tracking | |
echo "Recording deployment: ${{ github.sha }} to explore-gemini-dev" | |
curl -X POST https://api.github.com/repos/${{ github.repository }}/deployments -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github+json" -d '{ "ref": "${{ github.sha }}", "environment": "development", "description": "Explore deployment to dev", "auto_merge": false, "required_contexts": [], "task": "deploy:Explore" }' |