microfetch 0.4.13

Microscopic fetch tool in Rust, for NixOS systems, with special emphasis on speed
Documentation
name: hotpath-comment

on:
  workflow_run:
    workflows: ["hotpath-profile"]
    types:
      - completed

permissions:
  contents: read
  pull-requests: write

jobs:
  comment:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Download profiling results
        uses: actions/download-artifact@v7
        with:
          name: hotpath-results
          path: /tmp/
          github-token: ${{ secrets.GITHUB_TOKEN }}
          run-id: ${{ github.event.workflow_run.id }}

      - name: Setup Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1

      - name: Install hotpath CLI
        run: cargo install hotpath

      - name: Post timing comparison comment
        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
        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"