Skip to content

chore(deps): bump rustls-webpki from 0.103.7 to 0.103.10 #23

chore(deps): bump rustls-webpki from 0.103.7 to 0.103.10

chore(deps): bump rustls-webpki from 0.103.7 to 0.103.10 #23

Workflow file for this run

name: hotpath-profile
on:
pull_request:
permissions:
contents: read
jobs:
profile:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
id: rust_cache
with:
shared-key: profiling
- name: Note cache status
env:
CACHE_HIT: ${{ steps.rust_cache.outputs.cache-hit }}
run: |
echo "### Build cache" >> "$GITHUB_STEP_SUMMARY"
echo >> "$GITHUB_STEP_SUMMARY"
if [ "$CACHE_HIT" = "true" ]; then
echo "Using cached cargo artifacts for hotpath profiling run." >> "$GITHUB_STEP_SUMMARY"
else
echo "Cache miss for hotpath profiling job. This is normal on the first run for a branch or after toolchain changes; the next run will populate the cache." >> "$GITHUB_STEP_SUMMARY"
fi
- id: head_timing_metrics
run: |
# Extract timing metrics from head branch
{
echo 'metrics<<EOF'
cargo run --example benchmark --features='hotpath,hotpath-ci' | grep '^{"hotpath_profiling_mode"'
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- id: head_alloc_metrics
run: |
# Extract alloc metrics from head branch
{
echo 'metrics<<EOF'
cargo run --example benchmark --features='hotpath,hotpath-ci,hotpath-alloc-count-total' | grep '^{"hotpath_profiling_mode"'
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Checkout base
run: |
git checkout ${{ github.event.pull_request.base.sha }}
- id: base_timing_metrics
run: |
# Extract timing metrics from base branch
{
echo 'metrics<<EOF'
cargo run --example benchmark --features='hotpath,hotpath-ci' | grep '^{"hotpath_profiling_mode"'
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- id: base_alloc_metrics
run: |
# Extract alloc metrics from base branch
{
echo 'metrics<<EOF'
cargo run --example benchmark --features='hotpath,hotpath-ci,hotpath-alloc-count-total' | grep '^{"hotpath_profiling_mode"'
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Save metrics to artifact
run: |
mkdir -p /tmp/metrics
echo '${{ steps.head_timing_metrics.outputs.metrics }}' > /tmp/metrics/head_timing.json
echo '${{ steps.base_timing_metrics.outputs.metrics }}' > /tmp/metrics/base_timing.json
echo '${{ steps.head_alloc_metrics.outputs.metrics }}' > /tmp/metrics/head_alloc.json
echo '${{ steps.base_alloc_metrics.outputs.metrics }}' > /tmp/metrics/base_alloc.json
echo '${{ github.event.pull_request.number }}' > /tmp/metrics/pr_number.txt
- name: Publish metrics summary
env:
HEAD_TIMING: ${{ steps.head_timing_metrics.outputs.metrics }}
BASE_TIMING: ${{ steps.base_timing_metrics.outputs.metrics }}
HEAD_ALLOC: ${{ steps.head_alloc_metrics.outputs.metrics }}
BASE_ALLOC: ${{ steps.base_alloc_metrics.outputs.metrics }}
run: |
{
echo "## Hotpath profiling metrics"
echo
echo "### Timing"
echo
echo "<details><summary>Head</summary>"
echo
printf '```json\n'
if [ -n "$HEAD_TIMING" ]; then
printf '%s\n' "$HEAD_TIMING"
else
echo '{}'
fi
printf '```\n'
echo
echo "</details>"
echo
echo "<details><summary>Base</summary>"
echo
printf '```json\n'
if [ -n "$BASE_TIMING" ]; then
printf '%s\n' "$BASE_TIMING"
else
echo '{}'
fi
printf '```\n'
echo
echo "</details>"
echo
echo "### Allocation"
echo
echo "<details><summary>Head</summary>"
echo
printf '```json\n'
if [ -n "$HEAD_ALLOC" ]; then
printf '%s\n' "$HEAD_ALLOC"
else
echo '{}'
fi
printf '```\n'
echo
echo "</details>"
echo
echo "<details><summary>Base</summary>"
echo
printf '```json\n'
if [ -n "$BASE_ALLOC" ]; then
printf '%s\n' "$BASE_ALLOC"
else
echo '{}'
fi
printf '```\n'
echo
echo "</details>"
} >> "$GITHUB_STEP_SUMMARY"
- uses: actions/upload-artifact@v4
with:
name: profile-metrics
path: /tmp/metrics/
retention-days: 1