ci-automation
Skill1 starsChanged 7 months agoMITView on GitHub
Use when running GitHub Actions locally, creating task runner recipes, generating changelogs from git history, managing GitHub PRs/issues/releases programmatically, or creating encrypted backups
- Reads credentials
- Commits and pushes
In this repository6 other files it gives its agents.
- api-testingSkill
- data-processingSkill
- python-toolingSkill
- security-scanningSkill
- web-crawlingSkill
- web-researchSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 199
Prefer just over make for task recipes — better syntax, built-in arguments, no tab sensitivity
- Distinctive: line 200
Prefer act over push-and-pray for CI debugging — test Actions locally before pushing
- Distinctive: line 201
Prefer git-cliff over manual changelog writing — auto-generated from conventional commits
- Distinctive: line 202
Prefer gh CLI over GitHub web UI for batch operations — scriptable, JSON output, faster
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CI Automation
When to Use
- Running GitHub Actions workflows locally before pushing
- Creating or running project task recipes (build, test, deploy)
- Generating changelogs from conventional commit history
- Creating GitHub releases with auto-generated release notes
- Managing GitHub PRs, issues, or Actions runs programmatically
- Creating encrypted backups before destructive operations
Tools
| Tool | Purpose | Structured output |
| gh | GitHub CLI — PRs, issues, releases, Actions, API | --json on most commands |
| just | Task runner with Makefile-like recipes (Justfile) | N/A (runs commands) |
| act | Run GitHub Actions workflows locally in Docker | Terminal output (mirrors Actions logs) |
| git-cliff | Generate changelogs from conventional commits | --output for file, stdout by default |
| restic | Encrypted incremental backups | --json for JSON status output |
Patterns
Run a specific GitHub Actions job locally
act -j buildRun Actions with a specific event trigger
act pushRun Actions with secrets from .env file
act --secret-file .env -j testList available Actions workflows and jobs
act -lRun Actions with specific platform image
act -P ubuntu-latest=catthehacker/ubuntu:act-latestCreate a Justfile with common recipes
Create Justfile:
# List available recipes
default:
@just --list
# Run tests
test:
pytest -v
# Lint and format
lint:
ruff check --fix .
ruff format .
# Build and tag Docker image
build tag="latest":
docker build -t myapp:{{tag}} .
# Deploy to staging
deploy-staging: test lint
./scripts/deploy.sh stagingRun a just recipe
just testRun recipe with arguments
just build v1.2.3List available recipes
just --listGenerate changelog for all history
git-cliff --output CHANGELOG.mdGenerate changelog for latest release only
git-cliff --latestGenerate changelog since a specific tag
git-cliff --tag v1.0.0..HEADGenerate changelog with custom config
git-cliff --config cliff.toml --output CHANGELOG.mdGitHub: Create a release with changelog
git-cliff --latest --strip header | gh release create v1.2.3 --notes-file -GitHub: List open PRs as JSON
gh pr list --json number,title,author,createdAtGitHub: Create a PR
gh pr create --title "feat: add new feature" --body "Description of changes"GitHub: View Actions run status
gh run list --json status,name,conclusion --limit 10GitHub: Re-run a failed Actions workflow
gh run rerun <run-id> --failedGitHub: Create an issue
gh issue create --title "Bug: description" --body "Steps to reproduce..." --label bugGitHub: Query the GitHub API directly
gh api repos/{owner}/{repo}/releases --jq '.[0:5] | .[].tag_name'Restic: Initialize a backup repository
restic init --repo /path/to/backupRestic: Create a backup
restic backup --repo /path/to/backup --json ./important-dataRestic: List snapshots
restic snapshots --repo /path/to/backup --jsonRestic: Restore from backup
restic restore latest --repo /path/to/backup --target /path/to/restorePipelines
Generate changelog → create GitHub release
VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.1.0")
git-cliff --latest --strip header | gh release create "$VERSION" --notes-file - --title "$VERSION"Each stage: git-cliff generates changelog for latest version, gh creates release with those notes.
Run local CI → create PR if passing
act -j test && act -j lint && gh pr create --title "feat: ready for review" --body "Local CI passed (test + lint)"Each stage: act runs test job, act runs lint job, gh creates PR only if both pass.
Backup → deploy → verify
restic backup --repo /backup --json ./data && ./scripts/deploy.sh production && curl -sf https://myapp.com/healthEach stage: restic backs up current state, deploy script runs, curl verifies health endpoint.
List PRs → show CI status for each
gh pr list --json number,title,statusCheckRollup --jq '.[] | {pr: .number, title: .title, checks: [.statusCheckRollup[]? | {name: .name, status: .conclusion}]}'Prefer Over
- Prefer just over
makefor task recipes — better syntax, built-in arguments, no tab sensitivity - Prefer act over push-and-pray for CI debugging — test Actions locally before pushing
- Prefer git-cliff over manual changelog writing — auto-generated from conventional commits
- Prefer gh CLI over GitHub web UI for batch operations — scriptable, JSON output, faster
Do NOT Use When
- Simple git operations (commit, push, branch) — use git directly
- CI debugging that requires the exact GitHub runner environment — act uses Docker approximations
- One-time file copy — don't use restic for simple
cpoperations - Project doesn't use conventional commits — git-cliff won't produce useful output
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

