Tools · interactive
GitHub Actions on every push
One YAML file decides what runs when you push. Follow an event through on:, parallel jobs, a matrix and needs:, and see why deploy only runs on main.
You
git push
GitHub
pull_request
ci.yml
on: matched
Runners
4 VMs
PR checks
passing
.github/workflows/ci.ymlname: CIon: push: branches: [main] pull_request: jobs: lint: runs-on: ubuntu-latest steps: [checkout, setup-node, npm ci, npm run lint] test: runs-on: ubuntu-latest strategy: matrix: node: [18, 20, 22] steps: [checkout, setup-node, npm ci, npm test] deploy: needs: [lint, test] if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest steps: [checkout, deploy]
Pick an event and run it. This one takes about 91s and 7 billable runner minutes.
Event
Step 1 of 5 · read left to right
In production
Tools and technologies
Event-triggered YAML pipelines are the norm across CI products; the keywords change, the model doesn't.
Not tied to one language — use these names when you search docs or design a system.
- GitHub ActionsPlatform
Workflows in .github/workflows, triggered by repository events.
GitHub ↗ - actions/runnerSoftware
The open-source runner; self-host it on your own machines.
GitHub ↗ - actions/cacheSoftware
Cache dependencies between runs to cut install time.
GitHub ↗ - actSoftware
Run your workflows locally in containers before pushing.
GitHub ↗