---
title: "Use GitHub Actions for continuous · Agent Wranglers"
url: https://agentwranglers.se/playbook/stack/delivery-and-infrastructure/github-actions-ci
updated: 2026-10-21
licence: "All rights reserved"
---

# Use GitHub Actions for continuous integration

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

- Level: Recommended
- Chapter: [Delivery and infrastructure](https://agentwranglers.se/playbook/stack/delivery-and-infrastructure)
- Rule: Run every build, test and deploy in GitHub Actions workflows stored in the repository, with each step a plain shell command.
- Cost: Free tier. Free for public repositories with a monthly quota of minutes for private ones, paid above that. Not open source.
- How: GitHub Actions became generally available with CI and CD on 13 November 2019. It is built into GitHub, which 81.1% of developers used in the Stack Overflow Developer Survey 2025. There is no second account to manage. Workflows are YAML files in the repository, and AI tools write them well. Keep the way out open by putting the logic in scripts the workflow calls. Then any other CI runs the same scripts. Use short-lived cloud credentials as [Let CI sign in with OIDC](https://agentwranglers.se/playbook/infrastructure/configuration-and-secrets/oidc-for-ci) says. It stays the pick because it comes with the code host, so there is no second server to run. Choose something else when your code lives on GitLab Community Edition. Then use its built-in CI/CD, which is open source and works the same way.
- Check: Every workflow file runs one script per job, and the same scripts pass on a developer machine. Every third-party action is pinned to a full 40-character commit hash.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### YAML example

```yaml
name: test
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - run: ./scripts/test.sh
```

### Shell example

```sh
#!/bin/sh
set -eu
npm ci
npm test
```

## Sources

- [GitHub Actions documentation](https://docs.github.com/en/actions)

## Related rules

- [Run the checks on every change](https://agentwranglers.se/playbook/engineering/version-control-and-review/continuous-integration) in Engineering
- [Let CI sign in with OIDC](https://agentwranglers.se/playbook/infrastructure/configuration-and-secrets/oidc-for-ci) in Infrastructure

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/stack/delivery-and-infrastructure/github-actions-ci">Agent Wranglers software choices playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Use Git on GitHub for version control and code hosting](https://agentwranglers.se/playbook/stack/delivery-and-infrastructure/git-on-github)
- Next: [Use Docker and Docker Compose for containers](https://agentwranglers.se/playbook/stack/delivery-and-infrastructure/docker-and-compose)
- [Delivery and infrastructure](https://agentwranglers.se/playbook/stack/delivery-and-infrastructure)
