Skip to content

Commit

Permalink
CI: build once, run on multiple JDKs
Browse files Browse the repository at this point in the history
  • Loading branch information
vhotspur committed Nov 5, 2024
1 parent 838c1db commit 3bacbc7
Showing 1 changed file with 64 additions and 203 deletions.
267 changes: 64 additions & 203 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ on:
pull_request:
env:
COURSIER_CACHE: ${{ github.workspace }}/.cache/coursier
jobs:

jobs:

checks:
runs-on: ubuntu-latest
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk23"
Expand Down Expand Up @@ -41,10 +43,10 @@ jobs:
shell: bash
run: tools/ci/check-markdown.sh

linux:

build:
runs-on: ubuntu-latest
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk23"
continue-on-error: true
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk11-with-ant-gcc"
steps:
- name: Git checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -72,75 +74,30 @@ jobs:
- name: Check JMH bundle
shell: bash
run: tools/ci/check-jmh.sh

- 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

macos:
runs-on: macos-latest
continue-on-error: true
steps:
- name: Git checkout
uses: actions/checkout@v4

- name: Upload final JAR
uses: actions/upload-artifact@v4
with:
fetch-depth: 0
name: the-jar
path: target/renaissance-*.jar
retention-days: 1

- name: Fix Git safe directory
shell: bash
run: git config --global --add safe.directory $GITHUB_WORKSPACE

- name: Setup JDK 23
uses: actions/setup-java@v4
with:
java-version: 23
distribution: temurin

- 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: Dummy run and environment configuration
shell: bash
run: tools/ci/bench-show-env.sh

- 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

windows:
runs-on: windows-latest
continue-on-error: true
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
Expand All @@ -151,33 +108,15 @@ jobs:
shell: bash
run: git config --global --add safe.directory $GITHUB_WORKSPACE

- name: Setup Java JDK 23
uses: actions/setup-java@v4
with:
java-version: 23
distribution: temurin

- name: Environment configuration
shell: bash
run: tools/ci/pre-show-env.sh

- name: Coursier downloads cache
uses: actions/cache@v4
- name: Fetch pre-build JAR
uses: actions/download-artifact@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: Dummy run and environment configuration
shell: bash
run: tools/ci/bench-show-env.sh
name: the-jar
path: target

- name: Run the suite
shell: bash
Expand All @@ -191,56 +130,14 @@ jobs:
shell: bash
run: tools/ci/bench-jmh.sh

plugins:
runs-on: ubuntu-latest
needs: linux
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

linux-jdks:
needs: linux
run-macos:
needs: build
strategy:
fail-fast: false
matrix:
image:
- openjdk11
- openjdk17
- openjdk21
- openj9-openjdk11
- openj9-openjdk17
- openj9-openjdk21
runs-on: ubuntu-latest
continue-on-error: true
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-${{ matrix.image }}"
java: [ '11', '17', '21', '23' ]
runs-on: macos-latest
steps:
- name: Git checkout
uses: actions/checkout@v4
Expand All @@ -251,23 +148,21 @@ jobs:
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: Coursier downloads cache
uses: actions/cache@v4
- name: Fetch pre-build JAR
uses: actions/download-artifact@v4
with:
key: coursier_cache-${{ runner.os }}-${{ hashFiles('build.sbt') }}
path: ${{ env.COURSIER_CACHE }}

- name: Build base & JMH bundles
shell: bash
run: tools/ci/build-both.sh

- name: Check JMH bundle
shell: bash
run: tools/ci/check-jmh.sh
name: the-jar
path: target

- name: Run the suite
shell: bash
Expand All @@ -281,14 +176,13 @@ jobs:
shell: bash
run: tools/ci/bench-jmh.sh


windows-legacy:
needs: windows
run-windows:
needs: build
strategy:
fail-fast: false
matrix:
java: [ '11', '17', '21' ]
java: [ '11', '17', '21', '23' ]
runs-on: windows-latest
continue-on-error: true
steps:
- name: Git checkout
uses: actions/checkout@v4
Expand All @@ -309,23 +203,11 @@ jobs:
shell: bash
run: tools/ci/pre-show-env.sh

- name: Coursier downloads cache
uses: actions/cache@v4
- name: Fetch pre-build JAR
uses: actions/download-artifact@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: Dummy run and environment configuration
shell: bash
run: tools/ci/bench-show-env.sh
name: the-jar
path: target

- name: Run the suite
shell: bash
Expand All @@ -339,13 +221,10 @@ jobs:
shell: bash
run: tools/ci/bench-jmh.sh

macos-legacy:
needs: macos
strategy:
matrix:
java: [ '11', '17', '21' ]
runs-on: macos-latest
continue-on-error: true
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
Expand All @@ -356,12 +235,6 @@ jobs:
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
Expand All @@ -372,26 +245,14 @@ jobs:
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: Dummy run and environment configuration
shell: bash
run: tools/ci/bench-show-env.sh

- name: Run the suite
- name: Build base
shell: bash
run: tools/ci/bench-base.sh
run: tools/ci/build-base.sh

- name: Run the suite in standalone mode
- name: Build plugins
shell: bash
run: tools/ci/bench-standalone.sh
run: tools/ci/build-plugins.sh

- name: Run the suite with JMH
- name: Run the suite with all plugins
shell: bash
run: tools/ci/bench-jmh.sh
run: tools/ci/bench-plugins.sh

0 comments on commit 3bacbc7

Please sign in to comment.