Update CI to trigger for each push (#1771) #68
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
name: CI | |
on: | |
push: | |
branches: ["**"] | |
tags: ["v*"] | |
permissions: | |
contents: read | |
jobs: | |
ci: | |
name: Build and test | |
permissions: | |
contents: write | |
pull-requests: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: Run tests and coverage | |
run: |- | |
cp .jvmopts-ci .jvmopts | |
sbt coverage test coverageReport && bash <(curl -s https://codecov.io/bash) | |
- name: Prepare draft release notes | |
# Run this step only for pushes to the master branch or for tags starting with 'v' | |
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')) }} | |
continue-on-error: true | |
uses: release-drafter/release-drafter@v6 | |
with: | |
config-name: release-drafter.yml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
publish-sonatype: | |
permissions: | |
contents: write | |
pull-requests: write | |
name: Publish to Sonatype | |
# Publish to Sonatype only on tags starting with 'v' (stable releases) and not from forked repositories | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ! github.event.repository.fork }} | |
needs: [ci] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: Publish to Sonatype | |
run: sbt ci-release | |
env: | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
publish-azure: | |
permissions: | |
contents: write | |
pull-requests: write | |
name: Publish to Azure | |
# Publish to Azure only for non-tag references (e.g., all the pushes to default and other branches) and not from forked repositories | |
if: ${{ ! startsWith(github.ref, 'refs/tags/') && ! github.event.repository.fork }} | |
needs: [ci] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: Publish to Azure | |
run: sbt "clean; +aetherDeploy; project interaction-example-make-payment-and-ship-items; +aetherDeploy; project interaction-example-reserve-items; +aetherDeploy; project bakery-client-example; +aetherDeploy; project bakery-kafka-listener-example; +aetherDeploy" | |
env: | |
AZURE_FEEDUSER: ${{ secrets.AZURE_FEEDUSER }} | |
AZURE_FEEDPASSWORD: ${{ secrets.AZURE_FEEDPASSWORD }} | |
AZURE_FEEDURL: ${{ secrets.AZURE_FEEDURL }} | |
dependency-submission: | |
name: Submit dependency graph | |
continue-on-error: true | |
needs: [ci] | |
# run on 1) master branch | |
# do not run on pull requests | |
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
cache: sbt | |
- name: Submit dependency graph | |
uses: scalacenter/sbt-dependency-submission@v2 | |