Skip to content

Expand Forge target matrix and release validation #4

Expand Forge target matrix and release validation

Expand Forge target matrix and release validation #4

Workflow file for this run

name: Verify
on:
pull_request:
push:
permissions:
contents: read
concurrency:
group: verify-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
automation:
name: Automation configuration
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Validate manifests and shell scripts
shell: bash
run: |
set -euo pipefail
./scripts/release/validate-targets.sh
find scripts -type f -name '*.sh' -print0 | xargs -0 -n1 bash -n
matrix:
name: Read target matrix
runs-on: ubuntu-24.04
timeout-minutes: 5
outputs:
targets: ${{ steps.targets.outputs.matrix }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- id: targets
name: Validate and export targets
shell: bash
run: |
set -euo pipefail
./scripts/release/validate-targets.sh
matrix=$(jq -c '{include: [.targets[] | {target: .id, java: (.java | tostring), build_task: .build_task}]}' release/targets.json)
echo "matrix=$matrix" >> "$GITHUB_OUTPUT"
test:
name: ${{ matrix.target }} (JDK ${{ matrix.java }})
needs: matrix
runs-on: ubuntu-24.04
timeout-minutes: 20
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.matrix.outputs.targets) }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: gradle
- name: Build and test
run: ./gradlew :shared:protocol:test ${{ matrix.build_task }} --no-daemon --stacktrace