Skip to content

Check benchmarks

Check benchmarks #35

name: Check benchmarks
on:
workflow_dispatch:
schedule:
- cron: "0 5 * * 0" # Runs every Sunday at 5:00 AM UTC
- cron: "0 5 * * 3" # Runs every Wednesday at 5:00 AM UTC
jobs:
set-tags:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
git_ref: ${{ steps.check-git-ref.outputs.git_ref }}
steps:
- name: Check git ref
id: check-git-ref
run: |
if [[ -n "${{ github.event.pull_request.head.sha }}" ]]; then
echo "git_ref=${{ github.event.pull_request.head.sha }}" >> "$GITHUB_OUTPUT"
elif [[ -n "${{ github.event.inputs.pull_request }}" ]]; then
echo "git_ref=refs/pull/${{ github.event.inputs.pull_request }}/head" >> "$GITHUB_OUTPUT"
else
echo "git_ref=${GITHUB_REF}" >> "$GITHUB_OUTPUT"
fi
verify:
needs: ["set-tags"]
runs-on:
labels: bare-metal
permissions:
contents: read
strategy:
matrix:
runtime: [moonbeam, moonbase, moonriver]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ needs.set-tags.outputs.git_ref }}
persist-credentials: false
fetch-depth: 0
- name: Setup Variables
run: |
echo "RUSTFLAGS=-C opt-level=3 -D warnings -C linker=clang -C link-arg=-fuse-ld=$(pwd)/mold/bin/mold" >> "$GITHUB_ENV"
- name: Setup Mold Linker
run: |
mkdir -p mold
curl -L --retry 10 --silent --show-error https://github.com/rui314/mold/releases/download/v2.30.0/mold-2.30.0-$(uname -m)-linux.tar.gz | tar -C $(realpath mold) --strip-components=1 -xzf -
# With rustup's nice new toml format, we just need to run rustup show to install the toolchain
# https://github.com/actions-rs/toolchain/issues/126#issuecomment-782989659
- name: Setup Rust toolchain
shell: bash
run: |
if ! which "rustup" > /dev/null; then
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
fi
rustup override unset
rustup show
rustup target add wasm32-unknown-unknown
- name: Run benchmarks
shell: bash
run: |
./scripts/run-benches-for-runtime.sh ${{ matrix.runtime }} release
if test -f "benchmarking_errors.txt"; then
cat benchmarking_errors.txt
exit 1
fi