-
MVP:
Queue and runs exist on the benchmark server, which handles everything
-
To avoid a web server running in the background, have a VM or so that maintains the queue
-
Improve UX by allowing cancellation and other niceties
Eventually, we’ll just have a project-wide webhook like this. For now, if you want to test:
- Add a asv config to your project (either the project root or a benchmarks directory)
- Add a webhook to your scverse project with these webhook settings, i.e.
- Content type: application/json
- Let me select individual events → Pull Requests
- Add a label benchmark to a PR authored by a trusted user.
- Watch scverse-benchmarks add and update a comment with the PR’s performance impact.
All these currently assume you have a <user> login with sudo rights on the scvbench server.
- Use
journalctl -u benchmark -f
on the server to tail the logs of the service. - Check GitHub’s page for Hook deliveries.
-
As the benchmarker user, install micromamba, then:
micromamba create -n asv -c conda-forge conda mamba virtualenv asv micromamba run -n asv asv machine --yes
(use
micromamba activate asv
to makeasv
available in your PATH) -
Update
LoadCredentialEncrypted
lines in benchmark.service usingsudo systemd-creds encrypt --name=webhook_secret secret.txt - sudo systemd-creds encrypt --name=app_key app-key.pem - shred secret.txt app-key.pem
-
Copy the benchmark.service file to the system, enable and start the service:
$ rsync benchmark.service <user>@scvbench: $ ssh <user>@scvbench scvbench$ sudo mv benchmark.service /etc/systemd/system/ scvbench$ sudo systemctl enable --now benchmark
Further steps:
-
Setup chrony (/etc/chrony.conf) to use internal servers
server 146.107.1.13 trust server 146.107.5.10
- Make changes in <branch> (either main or a PR branch) and wait until CI finishes.
- Run
nu scripts/deploy.nu <branch> --user=<user>
. - Trigger a run, e.g. remove and re-add the benchmark label in PR 11.
For local development:
- Start the server locally
- use
scripts/test.nu
to send a payload (check the script for examples for both steps)