gh-workflow
gh-workflow
Run GitHub workflows on github.com
Workflow
When the user asks to run a workflow:
- Verify git remotes and confirm commits are pushed (MANDATORY):
- Check remotes:
git remote -v | grep github.com - Get current commit:
git rev-parse HEAD - Verify commit exists on remote:
git fetch github && git branch -r --contains $(git rev-parse HEAD) | grep -q github/ - If not found, push first:
git push github HEAD:main(or appropriate branch name) - Quick check:
git fetch github && git branch -r --contains HEAD | grep -q github/ || echo "WARNING: HEAD not pushed to github"
- Check remotes:
- Check the workflow file in
.github/workflows/to understand its trigger type and inputs - For
workflow_dispatchworkflows: trigger directly withgh workflow run - For
pushworkflows: push to the remote first, then the workflow runs automatically - Use appropriate parameters based on the workflow's input definitions
- For testing/iteration with matrix builds: prefer x64 over arm64 (faster provisioning)
- Download workflow artifacts to verify outputs
Usage
# List workflows
GH_HOST=github.com gh workflow list
# Run a workflow
GH_HOST=github.com gh workflow run <workflow-name>
# Run with inputs
GH_HOST=github.com gh workflow run <workflow-name> -f key=value
# View recent runs
GH_HOST=github.com gh run list --workflow=<workflow-name>
# Watch a run
GH_HOST=github.com gh run watch <run-id>
# Download artifacts from a run
GH_HOST=github.com gh run download <run-id>
Testing matrix builds
For workflows with matrix builds, test with the fastest variant first:
- Prefer x64 over arm64 (x64 runners provision faster)
- Prefer ubuntu over macos (faster startup)
- Use workflow inputs to target specific matrix cells if supported
Examples
# Run workflow_dispatch workflow with inputs
GH_HOST=github.com gh workflow run luajit.yml -f release_tag=2025.11.23 -f create_release=true
# Run workflow at specific commit (preferred - explicit and reproducible)
GH_HOST=github.com gh workflow run luajit.yml --ref $(git rev-parse HEAD)
# Or with explicit SHA
GH_HOST=github.com gh workflow run luajit.yml --ref abc1234
# Run without creating release (testing)
GH_HOST=github.com gh workflow run nvim.yml -f create_release=false
# Download artifacts from latest run
GH_HOST=github.com gh run list --workflow=luajit.yml --limit 1 --json databaseId --jq '.[0].databaseId' | xargs -I {} GH_HOST=github.com gh run download {}
More from whilp/world
hammerspoon
Configure and manage Hammerspoon automation, app launching, and window switching. Use when working with ~/.config/hammerspoon config files, adding keybindings, modifying the leader modal, or troubleshooting Hammerspoon functionality. Window management is handled by AeroSpace.
10dev
Development workflow for this repository. Run `make help` to see available targets.
1meta
Guide for writing and improving Claude Code skills. Use when creating new skills, debugging why skills aren't activating, or improving skill descriptions and structure.
1ghostty
Configure and manage Ghostty terminal emulator settings. Use when modifying ghostty config, validating configuration, checking window settings, themes, fonts, keybindings, or troubleshooting ghostty startup behavior.
1screenshot
Take screenshots, screen recordings, scrolling captures, and OCR text recognition using CleanShot X. Use when user requests screenshots, captures, screen recording, OCR, text extraction, or image annotation.
1dev-workflow
Development workflow for this repository. Run `make help` to see available targets.
1