feat(pm): integrate git dependency support into install flow (3/3) #595
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: utoopack-perf | |
| on: | |
| push: | |
| branches: [ main, next ] | |
| pull_request: | |
| branches: [ main, next ] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| jobs: | |
| performance: | |
| name: Run Performance Benchmarks | |
| if: (github.event_name == 'push' && contains(github.event.head_commit.message, '(pack)')) || (github.event_name == 'pull_request' && contains(github.event.pull_request.title, '(pack)')) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Init git submodules | |
| run: git submodule update --init --recursive --depth 1 | |
| - name: Free disk space | |
| run: | | |
| sudo rm -rf /usr/share/dotnet | |
| sudo rm -rf /usr/local/lib/android | |
| sudo rm -rf /opt/ghc | |
| sudo rm -rf "/usr/local/share/boost" | |
| sudo rm -rf /usr/share/swift | |
| sudo rm -rf /usr/local/share/powershell | |
| sudo rm -rf /usr/share/miniconda | |
| sudo docker image prune --all --force | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: nightly-2026-02-05 | |
| components: rustfmt, clippy | |
| # - name: Cache cargo | |
| # uses: Swatinem/rust-cache@v2 | |
| # with: | |
| # shared-key: utoopack-perf | |
| # cache-directories: | | |
| # target/release-local | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Build Bundler | |
| run: | | |
| # Build packages | |
| npm run build --workspace @utoo/pack-shared | |
| npm run build:local --workspace @utoo/pack | |
| npm run build --workspace @utoo/pack-cli | |
| - name: Run Benchmark - with-antd | |
| run: | | |
| mkdir -p .trace | |
| TRACING_CHROME=$PWD/.trace/trace_antd.json npm run build --prefix examples/with-antd | |
| env: | |
| NODE_ENV: production | |
| - name: Analyze Traces | |
| run: | | |
| TRACE_PROJECT=examples/with-antd python3 agents/tools/analyze_trace.py .trace/trace_antd.json .trace/report_antd.md | |
| # Prepare PR comment content | |
| echo "## 📊 Performance Benchmark Report (with-antd)" > .trace/pr_comment.md | |
| cat .trace/report_antd.md >> .trace/pr_comment.md | |
| # Add to Job Summary | |
| cat .trace/pr_comment.md >> $GITHUB_STEP_SUMMARY | |
| - name: Find Current PR | |
| id: findPr | |
| run: | | |
| echo "debug: Event name: ${{ github.event_name }}" | |
| echo "debug: Ref: ${{ github.ref }}" | |
| echo "debug: Ref name: ${{ github.ref_name }}" | |
| PR_NUMBER="" | |
| if [[ "${{ github.event_name }}" == "pull_request" ]]; then | |
| PR_NUMBER="${{ github.event.pull_request.number }}" | |
| echo "debug: Found PR number from event: $PR_NUMBER" | |
| else | |
| # Try to match by branch name | |
| echo "debug: Trying to find PR for branch '${{ github.ref_name }}'..." | |
| PR_NUMBER=$(gh pr list --head "${{ github.ref_name }}" --state open --json number --jq '.[0].number') | |
| # If not found, try to match by commit SHA | |
| if [ -z "$PR_NUMBER" ] || [ "$PR_NUMBER" == "null" ]; then | |
| echo "debug: Branch match failed, trying commit SHA match for ${{ github.sha }}..." | |
| PR_NUMBER=$(gh pr list --search "${{ github.sha }}" --state open --json number --jq '.[0].number') | |
| fi | |
| fi | |
| if [ -n "$PR_NUMBER" ] && [ "$PR_NUMBER" != "null" ]; then | |
| echo "debug: Final PR number: $PR_NUMBER" | |
| echo "number=$PR_NUMBER" >> $GITHUB_OUTPUT | |
| else | |
| echo "debug: No PR number found." | |
| fi | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_REPO: ${{ github.repository }} | |
| - name: Post PR Comment | |
| if: steps.findPr.outputs.number | |
| uses: marocchino/sticky-pull-request-comment@v2 | |
| with: | |
| header: utoopack-perf-report | |
| path: .trace/pr_comment.md | |
| number: ${{ steps.findPr.outputs.number }} | |
| recreate: true | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload Traces | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: utoopack-perf-traces | |
| path: .trace/ | |
| retention-days: 7 |