Fix CI pipeline to prevent double triggering for push and pull_reques… #78
Workflow file for this run
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*"] | |
pull_request: | |
branches: ["master"] | |
permissions: | |
contents: read | |
jobs: | |
ci: | |
name: Build and test | |
permissions: | |
contents: write | |
pull-requests: write | |
runs-on: ubuntu-latest | |
# This condition ensures the ci job runs only for push events that are not associated with a pull request (prevents duplicate runs) | |
if: ${{ github.event_name == 'push' && github.event.pull_request == null }} | |
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 in the original repo and 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')) && ! github.event.repository.fork }} | |
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 from the original repo and for the tags starting with 'v' | |
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 all the commits for all the branches from the original repo except for tags. | |
if: ${{ github.event_name == 'push' && ! 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] | |
# Submit dependency graph only for the master branch commits | |
if: ${{ github.event_name == 'push' && 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 |