CI: build once, run on multiple JDKs #300
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: Main | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
env: | |
COURSIER_CACHE: ${{ github.workspace }}/.cache/coursier | |
jobs: | |
checks: | |
runs-on: ubuntu-latest | |
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk23" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Fix Git safe directory | |
shell: bash | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Coursier downloads cache | |
uses: actions/cache@v4 | |
with: | |
key: coursier_cache-${{ runner.os }}-${{ hashFiles('build.sbt') }} | |
path: ${{ env.COURSIER_CACHE }} | |
- name: Check file encoding | |
shell: bash | |
run: tools/ci/check-encoding.sh | |
- name: Check source code formatting | |
shell: bash | |
run: tools/ci/check-formatting.sh | |
- name: Build the base bundle | |
shell: bash | |
run: tools/ci/build-base.sh | |
- name: Check generated files are up-to-date | |
shell: bash | |
run: tools/ci/check-markdown.sh | |
build: | |
runs-on: ubuntu-latest | |
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk11-with-ant-gcc" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Fix Git safe directory | |
shell: bash | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Environment configuration | |
shell: bash | |
run: tools/ci/pre-show-env.sh | |
- name: Coursier downloads cache | |
uses: actions/cache@v4 | |
with: | |
key: coursier_cache-${{ runner.os }}-${{ hashFiles('build.sbt') }} | |
path: ${{ env.COURSIER_CACHE }} | |
- name: Build both base & JMH bundles | |
shell: bash | |
run: tools/ci/build-both.sh | |
- name: Check JMH bundle | |
shell: bash | |
run: tools/ci/check-jmh.sh | |
- name: Upload final JAR | |
uses: actions/upload-artifact@v4 | |
with: | |
name: the-jar | |
path: target/renaissance-*.jar | |
retention-days: 1 | |
run-linux: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
image: | |
- openjdk11 | |
- openjdk17 | |
- openjdk21 | |
- openjdk23 | |
- openj9-openjdk11 | |
- openj9-openjdk17 | |
- openj9-openjdk21 | |
runs-on: ubuntu-latest | |
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-${{ matrix.image }}" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Fix Git safe directory | |
shell: bash | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Environment configuration | |
shell: bash | |
run: tools/ci/pre-show-env.sh | |
- name: Fetch pre-build JAR | |
uses: actions/download-artifact@v4 | |
with: | |
name: the-jar | |
path: target | |
- name: Run the suite | |
shell: bash | |
run: tools/ci/bench-base.sh | |
- name: Run the suite in standalone mode | |
shell: bash | |
run: tools/ci/bench-standalone.sh | |
- name: Run the suite with JMH | |
shell: bash | |
run: tools/ci/bench-jmh.sh | |
run-macos: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
java: [ '11', '17', '21', '23' ] | |
runs-on: macos-latest | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Fix Git safe directory | |
shell: bash | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Setup correct Java version | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ matrix.java }} | |
- name: Environment configuration | |
shell: bash | |
run: tools/ci/pre-show-env.sh | |
- name: Fetch pre-build JAR | |
uses: actions/download-artifact@v4 | |
with: | |
name: the-jar | |
path: target | |
- name: Run the suite | |
shell: bash | |
run: tools/ci/bench-base.sh | |
- name: Run the suite in standalone mode | |
shell: bash | |
run: tools/ci/bench-standalone.sh | |
- name: Run the suite with JMH | |
shell: bash | |
run: tools/ci/bench-jmh.sh | |
run-windows: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
java: [ '11', '17', '21', '23' ] | |
runs-on: windows-latest | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Fix Git safe directory | |
shell: bash | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Setup correct Java version | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ matrix.java }} | |
- name: Environment configuration | |
shell: bash | |
run: tools/ci/pre-show-env.sh | |
- name: Fetch pre-build JAR | |
uses: actions/download-artifact@v4 | |
with: | |
name: the-jar | |
path: target | |
- name: Run the suite | |
shell: bash | |
run: tools/ci/bench-base.sh | |
- name: Run the suite in standalone mode | |
shell: bash | |
run: tools/ci/bench-standalone.sh | |
- name: Run the suite with JMH | |
shell: bash | |
run: tools/ci/bench-jmh.sh | |
plugins: | |
runs-on: ubuntu-latest | |
needs: build | |
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk11-with-ant-gcc" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Fix Git safe directory | |
shell: bash | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Environment configuration | |
shell: bash | |
run: tools/ci/pre-show-env.sh | |
- name: Coursier downloads cache | |
uses: actions/cache@v4 | |
with: | |
key: coursier_cache-${{ runner.os }}-${{ hashFiles('build.sbt') }} | |
path: ${{ env.COURSIER_CACHE }} | |
- name: Build base | |
shell: bash | |
run: tools/ci/build-base.sh | |
- name: Build plugins | |
shell: bash | |
run: tools/ci/build-plugins.sh | |
- name: Run the suite with all plugins | |
shell: bash | |
run: tools/ci/bench-plugins.sh |