name: Binding Perf Tests (Micro Benchmarks)
on:
push:
branches-ignore:
- '**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
openjdk-microbm:
runs-on: [self-hosted, Linux, freq-scaling-off]
if: contains(github.event.pull_request.labels.*.name, 'PR-benchmarking')
steps:
- name: Check Revisions
uses: qinsoon/comment-env-vars@1.1.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
default_env: 'OPENJDK_BINDING_TRUNK_REF=master,MMTK_CORE_TRUNK_REF=master,OPENJDK_BINDING_BRANCH_REF=master,MMTK_CORE_BRANCH_REF=${{ github.event.pull_request.head.sha }}'
- name: Checkout OpenJDK Binding Trunk
uses: actions/checkout@v4
with:
repository: mmtk/mmtk-openjdk
token: ${{ secrets.GITHUB_TOKEN }}
path: mmtk-openjdk-trunk
submodules: true
ref: ${{ env.OPENJDK_BINDING_TRUNK_REF }}
- name: Checkout MMTk Core
uses: actions/checkout@v4
with:
ref: ${{ env.MMTK_CORE_TRUNK_REF }}
path: mmtk-core-trunk
- name: Checkout OpenJDK Binding Branch
uses: actions/checkout@v4
with:
repository: mmtk/mmtk-openjdk
token: ${{ secrets.GITHUB_TOKEN }}
path: mmtk-openjdk-branch
submodules: true
ref: ${{ env.OPENJDK_BINDING_BRANCH_REF }}
- name: Checkout MMTk Core
uses: actions/checkout@v4
with:
ref: ${{ env.MMTK_CORE_BRANCH_REF }}
path: mmtk-core-branch
- name: Checkout Perf Kit
uses: actions/checkout@v4
with:
repository: mmtk/ci-perf-kit
token: ${{ secrets.GITHUB_TOKEN }}
ref: "0.8.6"
path: ci-perf-kit
submodules: true
- name: Setup Rust Toolchain
run: echo "RUSTUP_TOOLCHAIN=`cat mmtk-core-trunk/rust-toolchain`" >> $GITHUB_ENV
- name: Compare Performance
id: run
run: |
./ci-perf-kit/scripts/openjdk-micro-bm.sh mmtk-openjdk-trunk/ mmtk-core-trunk/ mmtk-openjdk-branch/ mmtk-core-branch/ openjdk-rebench-report.md
- uses: pCYSl5EDgo/cat@master
id: cat
with:
path: openjdk-rebench-report.md
- uses: actions/upload-artifact@v4
with:
name: openjdk-rebench-data
path: ci-perf-kit/microbm/ci.data
- uses: actions/upload-artifact@v4
with:
name: openjdk-rebench-report.md
path: openjdk-rebench-report.md
- name: Result
if: always()
uses: thollander/actions-comment-pull-request@main
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
message: ${{ steps.cat.outputs.text }}
- name: Clean up logs and reports
if: always()
run: |
rm -f ci-perf-kit/microbm/*.data
rm openjdk-rebench-report.md