Skip to content

d9p1

d9p1 #25

Workflow file for this run

on:
push:
branches:
- "master"
name: benchmark
jobs:
bench:
name: run benchmark
runs-on: ubuntu-latest
steps:
- run: sudo apt install valgrind
- name: Check out base
uses: actions/checkout@v4
- name: Install Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run criterion benchmarks
run: cargo bench
env:
AOC_SESSION: ${{secrets.AOC_SESSION}}
# Run iai after criterion to ensure private solutions have been downloaded,
# since the iai version cannot be built without private inputs.
- name: Run iai
run: cargo bench iai --features iai-bench >target/criterion/iai.txt
- name: Generate index page
run: |
cat <<EOF > target/criterion/index.html
<html>
<head>
<title>AoC 2024 solutions by SOFe</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<h1>AoC 2024 solutions by SOFe</h1>
<ul>
<li><a href="https://github.com/SOF3/aoc2024">Source code</a></li>
<li>
<a href="./report/index.html">Benchmark reports</a>
(executed on GitHub CI, very unreliable)
</li>
<li><a href="./iai.txt">
Cachegrind-based CPU cycle &amp; memory access report
</a></li>
</ul>
</body>
</html>
EOF
- name: Publish results
id: deployment
uses: actions/upload-pages-artifact@v3
with:
path: target/criterion
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
contents: read
pages: write
id-token: write
name: deploy pages
runs-on: ubuntu-latest
needs: bench
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4