copilot-setup-steps.yml builds gh-aw from source unnecessarily
- Dominant language
- Go
- Stars
- 5.1k
- Forks
- 541
- Avg merge
- 5h 46m
- Merged PRs (30d)
- 760
Description
## 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 calls** — `setup-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 failures** — `setup-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](https://github.com/github/gh-aw/actions/runs/23984585463))
## Current state
`copilot-setup-steps.yml` includes:
```yaml
- 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 extension** — `gh 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
Contributor guide
Assessment
This issue has not been assessed yet.