d9p1 #25
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
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 & 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 | |