From 8d97a9e8ec543611c4fde53c688a13ebd3b9a552 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 30 Nov 2025 15:32:40 +0300 Subject: [PATCH] ci: streamline workflows; remove tagged release workflow Signed-off-by: NotAShelf Change-Id: I1432980533dee11b64a53d2ad2f2094d6a6a6964 --- .github/workflows/hotpath-comment.yml | 51 +++++++++++++++++---------- .github/workflows/hotpath-profile.yml | 30 ++++++++-------- 2 files changed, 48 insertions(+), 33 deletions(-) diff --git a/.github/workflows/hotpath-comment.yml b/.github/workflows/hotpath-comment.yml index 8f83d00..4e072fe 100644 --- a/.github/workflows/hotpath-comment.yml +++ b/.github/workflows/hotpath-comment.yml @@ -1,12 +1,13 @@ -name: Hotpath Comment +name: hotpath-comment on: workflow_run: - workflows: ["Hotpath Profile"] + workflows: ["hotpath-profile"] types: - completed permissions: + contents: read pull-requests: write jobs: @@ -15,17 +16,17 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Download profiling results uses: actions/download-artifact@v4 with: name: hotpath-results + path: /tmp/ github-token: ${{ secrets.GITHUB_TOKEN }} run-id: ${{ github.event.workflow_run.id }} - - name: Read PR number - id: pr - run: echo "number=$(cat pr_number.txt)" >> $GITHUB_OUTPUT - - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 @@ -33,17 +34,29 @@ jobs: run: cargo install hotpath - name: Post timing comparison comment - run: | - hotpath profile-pr \ - --head-metrics head-timing.json \ - --base-metrics base-timing.json \ - --github-token ${{ secrets.GITHUB_TOKEN }} \ - --pr-number ${{ steps.pr.outputs.number }} + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + HEAD_METRICS=$(cat /tmp/head_timing.json) + BASE_METRICS=$(cat /tmp/base_timing.json) + PR_NUMBER=$(cat /tmp/pr_number.txt) + hotpath profile-pr \ + --head-metrics "$HEAD_METRICS" \ + --base-metrics "$BASE_METRICS" \ + --github-token "$GH_TOKEN" \ + --pr-number "$PR_NUMBER" - - name: Post allocation comparison comment - run: | - hotpath profile-pr \ - --head-metrics head-alloc.json \ - --base-metrics base-alloc.json \ - --github-token ${{ secrets.GITHUB_TOKEN }} \ - --pr-number ${{ steps.pr.outputs.number }} + - name: Post allocation comparison comment + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + HEAD_METRICS=$(cat /tmp/head_alloc.json) + BASE_METRICS=$(cat /tmp/base_alloc.json) + PR_NUMBER=$(cat /tmp/pr_number.txt) + hotpath profile-pr \ + --head-metrics "$HEAD_METRICS" \ + --base-metrics "$BASE_METRICS" \ + --github-token "$GH_TOKEN" \ + --pr-number "$PR_NUMBER" diff --git a/.github/workflows/hotpath-profile.yml b/.github/workflows/hotpath-profile.yml index b367ca2..1b4ce26 100644 --- a/.github/workflows/hotpath-profile.yml +++ b/.github/workflows/hotpath-profile.yml @@ -1,4 +1,4 @@ -name: Hotpath Profile +name: hotpath-profile on: pull_request: @@ -14,6 +14,8 @@ jobs: steps: - name: Checkout PR HEAD uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 @@ -22,42 +24,42 @@ jobs: env: HOTPATH_JSON: "true" run: | - cargo run --features='hotpath' 2>&1 | grep '^{"hotpath_profiling_mode"' > head-timing.json + cargo run --features='hotpath' 2>&1 | grep '^{"hotpath_profiling_mode"' > /tmp/head_timing.json - name: Run allocation profiling on HEAD env: HOTPATH_JSON: "true" run: | - cargo run --features='hotpath,hotpath-alloc-count-total' 2>&1 | grep '^{"hotpath_profiling_mode"' > head-alloc.json + cargo run --features='hotpath,hotpath-alloc' 2>&1 | grep '^{"hotpath_profiling_mode"' > /tmp/head_alloc.json - name: Checkout base branch - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.base.sha }} + run: | + git checkout ${{ github.event.pull_request.base.sha }} - name: Run timing profiling on base env: HOTPATH_JSON: "true" run: | - cargo run --features='hotpath' 2>&1 | grep '^{"hotpath_profiling_mode"' > base-timing.json + cargo run --features='hotpath' 2>&1 | grep '^{"hotpath_profiling_mode"' > /tmp/base_timing.json || echo '{}' > /tmp/base_timing.json - name: Run allocation profiling on base env: HOTPATH_JSON: "true" run: | - cargo run --features='hotpath,hotpath-alloc-count-total' 2>&1 | grep '^{"hotpath_profiling_mode"' > base-alloc.json + cargo run --features='hotpath,hotpath-alloc' 2>&1 | grep '^{"hotpath_profiling_mode"' > /tmp/base_alloc.json || echo '{}' > /tmp/base_alloc.json - name: Save PR number - run: echo "${{ github.event.number }}" > pr_number.txt + run: | + echo '${{ github.event.pull_request.number }}' > /tmp/pr_number.txt - name: Upload profiling results uses: actions/upload-artifact@v4 with: name: hotpath-results path: | - head-timing.json - head-alloc.json - base-timing.json - base-alloc.json - pr_number.txt + /tmp/head_timing.json + /tmp/head_alloc.json + /tmp/base_timing.json + /tmp/base_alloc.json + /tmp/pr_number.txt retention-days: 1