Skip to content

Update Akka configuration to avoid registering JVM shutdown hooks and calling system exit on fatal error #327

Update Akka configuration to avoid registering JVM shutdown hooks and calling system exit on fatal error

Update Akka configuration to avoid registering JVM shutdown hooks and calling system exit on fatal error #327

Workflow file for this run

name: Main
on:
push:
branches: [master]
pull_request:
env:
COURSIER_CACHE: ${{ github.workspace }}/.cache/coursier
# Retention period of the generated artifacts (main and JMH Renaissance JARs)
# (Using the pseudo-ternary operator here, the retention can be 1 to 90 days)
ARTIFACT_RETENTION_DAYS: ${{ ((github.event_name == 'push') && (github.ref == 'refs/heads/master')) && 30 || 4 }}
jobs:
style:
runs-on: ubuntu-latest
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk23"
# We rarely build for more than 3 minutes
timeout-minutes: 10
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
build:
runs-on: ubuntu-latest
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk11-with-ant-gcc"
# We rarely build for more than 3 minutes
timeout-minutes: 10
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 the main JAR
uses: actions/upload-artifact@v4
with:
name: main-jar
path: target/renaissance-*.jar
retention-days: ${{ env.ARTIFACT_RETENTION_DAYS }}
- name: Upload JMH JAR
uses: actions/upload-artifact@v4
with:
name: jmh-jar
path: renaissance-jmh/target/renaissance-*.jar
retention-days: ${{ env.ARTIFACT_RETENTION_DAYS }}
readme:
needs: build
runs-on: ubuntu-latest
container: "ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-openjdk23"
# We rarely build for more than 3 minutes
timeout-minutes: 10
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: Fetch pre-built main JAR
uses: actions/download-artifact@v4
with:
name: main-jar
path: target
- name: Check generated files are up-to-date
shell: bash
run: tools/ci/check-markdown.sh
run:
needs: build
strategy:
fail-fast: false
matrix:
include:
- os: linux
image: openjdk11
- os: linux
image: openjdk17
- os: linux
image: openjdk21
- os: linux
image: openjdk23
- os: linux
image: openj9-openjdk11
- os: linux
image: openj9-openjdk17
- os: linux
image: openj9-openjdk21
- os: windows
java: 11
- os: windows
java: 17
- os: windows
java: 21
- os: windows
java: 23
- os: macos
java: 11
- os: macos
java: 17
- os: macos
java: 21
- os: macos
java: 23
# The following two lines are a bit of a hack:
# - We use only short OS name in the matrix to have short build names.
# - We need to set container to null on Windows and Mac as containers are
# supported on Linux only
runs-on: ${{ (matrix.os == 'linux') && 'ubuntu' || matrix.os }}-latest
container: ${{ (matrix.os == 'linux') && format('ghcr.io/renaissance-benchmarks/renaissance-buildenv:v12-{0}', matrix.image) || null }}
# We rarely run over 17 minutes but a runaway JMH can loop forever.
timeout-minutes: 30
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 }}
if: ${{ matrix.os != 'linux' }}
- name: Environment configuration
shell: bash
run: tools/ci/pre-show-env.sh
- name: Fetch pre-built main JAR
uses: actions/download-artifact@v4
with:
name: main-jar
path: target
- name: Fetch pre-built JMH JAR
uses: actions/download-artifact@v4
with:
name: jmh-jar
path: renaissance-jmh/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"
# We rarely run over 10 minutes anyway.
timeout-minutes: 30
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: Fetch pre-built main JAR
uses: actions/download-artifact@v4
with:
name: main-jar
path: target
- 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