Forgejo Go Benchstat
For the longest time I wanted to see the performance impact of my changes. This desire goes back years, back to the early days of CoreDNS. And now I finally have it.
It does require running your own forgejo-runner on your own hardware to have any meaningful data. Without further adu:
# On https://codeberg.org/miekg/dns/actions you can see the run and copy and paste a new.txt if performance is
# better. Put this contents in old.txt
on: [push, pull_request]
jobs:
test:
runs-on: atoom-tiny
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ vars.GOVERSION }}
- run: |
apt-get update
apt-get -y install dnsperf jq
go install golang.org/x/perf/cmd/benchstat@latest
(cd cmd/reflect; go build)
HOSTNAME=atoom-tiny
# Sleep here so we have the machine to ourselves.
sleep 60
(cd cmd/reflect; make new.txt)
REF=$(echo ${{ forgejo.ref }} | cut -d/ -f3)
echo ${{ forgejo.api_url}}/repos/${{ forgejo.repository }}/issues/${REF}/comments
echo "{\"body\": $(cd cmd/reflect; make stat | jq -sR .)}" | \
curl --json @- \
-H 'Authorization: token ${{ forgejo.token }}' \
${{ forgejo.api_url}}/repos/${{ forgejo.repository }}/issues/${REF}/comments
See https://codeberg.org/miekg/dns for all other bits that are needed.
Read other posts