Skip to content

chore: bump versions for release -- iii(iii/v0.11.0-next.5) #12

chore: bump versions for release -- iii(iii/v0.11.0-next.5)

chore: bump versions for release -- iii(iii/v0.11.0-next.5) #12

Workflow file for this run

name: Benchmark Release
on:
push:
tags:
- 'iii/v*'
workflow_dispatch:
permissions:
contents: write
concurrency:
group: bench-release-${{ github.repository }}
env:
CARGO_TERM_COLOR: always
III_TELEMETRY_ENABLED: "false"
jobs:
benchmark:
name: Run Benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Run benchmarks
run: cargo bench -p iii --bench '*' -- --output-format bencher 2>&1 | tee bench-output.txt
- name: Extract version from tag
id: meta
run: |
if [[ "$GITHUB_REF_NAME" == iii/v* ]]; then
VERSION="${GITHUB_REF_NAME#iii/v}"
else
VERSION="manual-$(date +%Y%m%d-%H%M%S)"
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
name: iii Engine Benchmarks
tool: 'cargo'
output-file-path: bench-output.txt
gh-pages-branch: gh-pages
benchmark-data-dir-path: dev/bench
github-token: ${{ secrets.GITHUB_TOKEN }}
auto-push: true
alert-threshold: '120%'
comment-on-alert: true
summary-always: true
alert-comment-cc-users: '@iii-hq/engine'
- name: Upload raw criterion data
uses: actions/upload-artifact@v4
with:
name: criterion-data-${{ steps.meta.outputs.version }}
path: target/criterion/
retention-days: 90
- name: Generate benchmark summary
if: always()
id: summary
run: |
VERSION="${{ steps.meta.outputs.version }}"
BENCH_COUNT=$(grep -c "^test " bench-output.txt 2>/dev/null || echo "0")
if [[ "${{ job.status }}" == "success" ]]; then
STATUS_ICON=":large_green_circle:"
else
STATUS_ICON=":red_circle:"
fi
PAGES_URL="https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/dev/bench/"
WORKFLOW_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
{
echo "body<<EOFSLACK"
printf '%s %s\n%s\n%s' \
"${STATUS_ICON}" "*Benchmark Results* — iii v${VERSION}" \
"${BENCH_COUNT} benchmarks collected" \
"<${PAGES_URL}|View historical charts> | <${WORKFLOW_URL}|View workflow>"
echo ""
echo "EOFSLACK"
} >> "$GITHUB_OUTPUT"
- name: Post to Slack
if: always()
continue-on-error: true
uses: slackapi/slack-github-action@v2.0.0
with:
method: chat.postMessage
token: ${{ secrets.SLACK_BOT_TOKEN }}
payload: |
channel: ${{ secrets.SLACK_CHANNEL_ID }}
text: "Benchmark results for iii v${{ steps.meta.outputs.version }}"
blocks:
- type: "section"
text:
type: "mrkdwn"
text: "${{ steps.summary.outputs.body }}"