Skip to content

whack

whack #5

Workflow file for this run

name: Performance Benchmarking CI
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
push:
jobs:
perf:
name: Perfharness
runs-on: ubuntu-22.04
container:
image: angr/ci:3
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: angr/angr-dev
- name: Install
run: |
python3 -mvirtualenv venv && . venv/bin/activate
pip install perfharness[viz]
./extremely-simple-setup.sh
- name: Test
run: |
echo "[perfharness]" > .perfharness.ini
echo "database = ${{ secrets.PERFCI_DATABASE_URL }}" >> .perfharness.ini
echo "database_ssl_param = ssl_context" >> .perfharness.ini
echo "database_ssl_rootcrt = /ca/root.crt" >> .perfharness.ini
echo "database_ssl_clientcrt = /ca/client.crt" >> .perfharness.ini
echo "database_ssl_clientkey = /ca/client.key" >> .perfharness.ini
mkdir /ca/
echo "${{ secrets.PERFCI_ROOT_CRT }}" >/ca/root.crt
echo "${{ secrets.PERFCI_CLIENT_CRT }}" >/ca/client.crt
echo "${{ secrets.PERFCI_CLIENT_KEY }}" >/ca/client.key
cd angr/tests/perf
for f in perf_*.py; do
../../../venv/bin/python -m perfharness run -n 5 -w 1 --note 'GitHub Actions' $f
done
- name: Render
run: |
for f in perf_*.py; do
../../../venv/bin/python -m perfharness viz --since '2 weeks ago' --save $f.png $f
done
- name: Upload
run: |
formArgs=""
idx=0
for f in perf_*.py.png; do
formArgs="$formArgs --form files[$idx]=@$f"
idx=$((idx + 1))
done
curl '${{ secrets.PERFCI_DISCORD_WEBHOOK }}?wait=true' $formArgs