Update tests to use dacapo-23.9-RC3-chopin #106
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: "Continuous Integration" | |
on: | |
pull_request: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
DACAPO_VERSION: dacapo-23.9-RC3-chopin | |
DACAPO_FILE: dacapo-23.9-RC3-chopin.zip | |
DACAPO_DOWNLOAD_URL: https://download.dacapobench.org/chopin/dacapo-23.9-RC3-chopin.zip | |
jobs: | |
build-linux-x64: | |
name: linux-x64 | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: true | |
matrix: | |
debug-level: ["fastdebug", "release"] | |
steps: | |
- name: Checkout MMTk OpenJDK binding | |
uses: actions/checkout@v3 | |
with: | |
path: ./git/mmtk-openjdk | |
- name: Extract OpenJDK revision | |
id: extract-openjdk-revision | |
run: | | |
OPENJDK_VERSION=`sed -n 's/^openjdk_version.=."\(.*\)"$/\1/p' < git/mmtk-openjdk/mmtk/Cargo.toml` | |
echo "openjdk-revision=$OPENJDK_VERSION" >> $GITHUB_OUTPUT | |
- name: Checkout OpenJDK | |
uses: actions/checkout@v3 | |
with: | |
repository: mmtk/openjdk | |
path: ./git/openjdk | |
ref: ${{ steps.extract-openjdk-revision.outputs.openjdk-revision }} | |
- name: Setup environment | |
run: ./.github/scripts/setup.sh | |
working-directory: ./git/mmtk-openjdk | |
- name: Style checks | |
run: ./.github/scripts/style-check.sh | |
working-directory: ./git/mmtk-openjdk | |
- name: Build MMTk OpenJDK ${{ matrix.debug-level }} | |
run: DEBUG_LEVEL=${{ matrix.debug-level }} ./.github/scripts/build-normal.sh | |
working-directory: ./git/mmtk-openjdk | |
- name: Upload bundles | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-x86_64-server-${{ matrix.debug-level }}-bundles | |
path: ./git/openjdk/build/linux-x86_64-normal-server-${{ matrix.debug-level }}/bundles/*_bin.tar.gz | |
retention-days: 2 | |
cache-dacapo: | |
name: Cache Dacapo | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check ${{ env.DACAPO_VERSION }} cache | |
id: check-cache | |
uses: actions/cache@v3 | |
with: | |
path: dacapo/${{ env.DACAPO_FILE }} | |
key: ${{ env.DACAPO_VERSION }} | |
lookup-only: true | |
- name: Install ${{ env.DACAPO_VERSION }} | |
if: steps.check-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dacapo | |
pushd dacapo | |
wget -q "${{ env.DACAPO_DOWNLOAD_URL }}" -O ${{ env.DACAPO_FILE }} | |
popd | |
test-linux-x64: | |
name: linux-x64 | |
needs: | |
- build-linux-x64 | |
- cache-dacapo | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
debug-level: ["fastdebug", "release"] | |
benchmark: | |
- avrora | |
- batik | |
- biojava | |
- cassandra | |
- eclipse | |
- fop | |
- graphchi | |
- h2 | |
- h2o | |
- jme | |
- jython | |
- kafka | |
- luindex | |
- lusearch | |
- pmd | |
# spring | |
- sunflow | |
- tomcat | |
# tradebeans | |
# tradesoap | |
- xalan | |
- zxing | |
steps: | |
- name: Check free space | |
run: df -h | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@master | |
with: | |
remove-dotnet: true | |
remove-android: true | |
remove-haskell: true | |
remove-codeql: true | |
remove-docker-images: true | |
- name: Check free space | |
run: df -h | |
- name: Checkout MMTk OpenJDK binding | |
uses: actions/checkout@v3 | |
- name: Setup environment | |
run: | | |
pip3 install running-ng | |
sudo apt-get update -y | |
sudo apt-get install -y build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libasound2-dev libxrandr-dev | |
- name: Check free space | |
run: df -h | |
- name: Fetch ${{ env.DACAPO_VERSION }} cache | |
id: fetch-cache | |
uses: actions/cache@v3 | |
with: | |
path: dacapo/${{ env.DACAPO_FILE }} | |
key: ${{ env.DACAPO_VERSION }} | |
# fail-on-cache-miss: true # We should never have a cache miss here as we cache DaCapo in an earlier job | |
# Temporarily change this to false in case the cache download gets | |
# stuck -- if the cache download is stuck then we go straight to | |
# upstream and fetch the zip file | |
fail-on-cache-miss: false | |
- name: Install ${{ env.DACAPO_VERSION }} | |
if: steps.fetch-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p dacapo | |
pushd dacapo | |
wget -q "${{ env.DACAPO_DOWNLOAD_URL }}" -O ${{ env.DACAPO_FILE }} | |
popd | |
- name: Unzip ${{ env.DACAPO_VERSION }} | |
run: | | |
pushd dacapo | |
unzip ${{ env.DACAPO_FILE }} | |
popd | |
- name: Check free space | |
run: df -h | |
- name: Download bundles | |
uses: actions/download-artifact@v3 | |
with: | |
name: linux-x86_64-server-${{ matrix.debug-level }}-bundles | |
path: bundles | |
- name: Extract OpenJDK | |
run: | | |
pushd bundles | |
tar xvf *.tar.gz | |
BIN_DIR=`find . -name bin` | |
mv `dirname $BIN_DIR` jdk | |
popd | |
- name: Check free space | |
run: df -h | |
- name: Run ${{ env.DACAPO_VERSION }} ${{ matrix.benchmark }} on MMTk OpenJDK ${{ matrix.debug-level }} with 2.5x MarkCompact minheap | |
run: | | |
DACAPO_PATH=`realpath ./dacapo` | |
sed -i "s;DACAPO_PATH;$DACAPO_PATH;g" .github/configs/base.yml | |
echo " - ${{ matrix.benchmark }}" >> .github/configs/base.yml | |
running runbms /tmp .github/configs/base.yml -s 2.5 -p linux-x86_64-${{ matrix.benchmark }}-${{ matrix.debug-level }} | tee /tmp/running.stdout | |
- name: Extract running run id | |
id: extract-running-run-id | |
run: | | |
RUN_ID=`sed -n 's/^Run id:.\(.*\)$/\1/p' < /tmp/running.stdout` | |
echo "run-id=$RUN_ID" >> $GITHUB_OUTPUT | |
- name: Upload running artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-x86_64-${{ matrix.benchmark }}-${{ matrix.debug-level }} | |
path: /tmp/${{ steps.extract-running-run-id.outputs.run-id }}/ | |
- name: Check for test failures | |
run: | | |
RUNNING_OUTPUT=`sed -n "s/^\(${{ matrix.benchmark }} .*\)$/\1/p" < /tmp/running.stdout` | |
echo $RUNNING_OUTPUT | |
echo $RUNNING_OUTPUT | grep -vq "\." |