Skip to content

copilot-setup-steps.yml builds gh-aw from source unnecessarily #24568

@lpcox

Description

@lpcox

Problem

copilot-setup-steps.yml builds gh-aw from source (make deps-dev, make build, make recompile) and installs Go, Node.js, npm dependencies, etc. This is appropriate for workflows that modify gh-aw code, but workflows that only use gh-aw (e.g., token audit, optimizer) don't need any of that.

Importing copilot-setup-steps.yml into reporting/audit workflows causes:

  • Unnecessary API callssetup-go, setup-node, setup-uv all hit the GitHub API to resolve versions, contributing to rate limit exhaustion
  • Slow setup — building from source adds minutes of setup time
  • Rate limit failuressetup-uv calls the GitHub Releases API to find the latest version; when the installation token is already rate-limited, this step fails and blocks the entire workflow (see run #23984585463)

Current state

copilot-setup-steps.yml includes:

- curl install gh-aw extension
- actions/checkout
- setup-node + npm ci
- setup-go
- npm install
- make deps-dev
- make build          # builds gh-aw binary from source
- make recompile      # recompiles all workflow lock files
- setup-uv
- install gopls
- install typescript-language-server

Desired behavior

Workflows that only use gh-aw (not develop it) should be able to install just:

  1. Copilot CLI — already handled by the AWF sandbox
  2. gh-aw extensiongh extension install github/gh-aw

Without pulling in the full build toolchain.

Suggested approach

Either:

  1. Remove copilot-setup-steps.yml import from reporting workflows and rely on their own steps: blocks (which already install gh-aw via extension)
  2. Create a lightweight setup variant (e.g., copilot-setup-steps-lite.yml) that only installs the extension without building from source
  3. Make copilot-setup-steps.yml conditional — skip build/recompile when the workflow doesn't need them

Affected workflows

  • copilot-token-audit.md — daily audit, only needs gh-aw CLI + Python
  • copilot-token-optimizer.md — daily optimizer, only needs gh-aw CLI

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions