github-actions-templates — Claude Code skill: install
This skill creates GitHub Actions workflows for testing, builds, and deployments. Use it when a project needs CI/CD or reusable workflow templates.
/plugin marketplace add wshobson/agents
/plugin install cicd-automation@claude-code-workflowsWhat github-actions-templates does
github-actions-templates provides GitHub Actions patterns for Node.js and Python tests, matrix builds, Docker image publishing, Kubernetes deployment, and security scans. The examples use pinned action versions, dependency caching, pull request checks, permissions, and reusable workflows.
The skill includes workflows for pushing images to ghcr.io, deploying to AWS EKS with kubectl, and scanning a repository with Trivy and Snyk. Depending on the workflow, you need GitHub secrets, AWS credentials, SNYK_TOKEN, SLACK_WEBHOOK, or project files such as k8s/.
Install it when you are designing CI/CD or want repeatable workflow patterns across projects. Skip it if your existing pipeline already covers these cases.
What it helps with
- run Node.js and Python tests across versions
- build and push a Docker image to a registry
- scan a repository with Trivy and Snyk
- deploy an application to a Kubernetes cluster
- reuse a shared GitHub Actions workflow
Example prompts for the agent
- Create a GitHub Actions test workflow for Node.js versions 18.x and 20.x.
- Build and push a Docker image to ghcr.io on main and version tags.
- Set up an AWS EKS deployment with `kubectl` and verify the rollout.
How to install github-actions-templates
1Plugin marketplace
/plugin marketplace add wshobson/agents/plugin install cicd-automation@claude-code-workflowsThis installs the whole cicd-automation plugin with all its skills
2Skills CLI (Vercel)
npx skills add wshobson/agents --skill github-actions-templates -a claude-code3Manually: put the files in place
~/.claude/skills/github-actions-templates/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/github-actions-templates/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill github-actions-templates -a codex2Manually: put the files in place
.agents/skills/github-actions-templates/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill github-actions-templates -a cursor2Manually: put the files in place
.cursor/skills/github-actions-templates/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install wshobson/agents github-actions-templates2Manually: put the files in place
.github/skills/github-actions-templates/SKILL.mdPlatform CLI
gemini skills install https://github.com/wshobson/agents --path plugins/cicd-automation/skills/github-actions-templatesManually: put the files in place
.devin/skills/github-actions-templates/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set213
The whole set →Similar
Questions about github-actions-templates
How do I install github-actions-templates in Claude Code?
Run npx skills add wshobson/agents --skill github-actions-templates -a claude-code. The skill file is placed at ~/.claude/skills/github-actions-templates/SKILL.md.
What does github-actions-templates do?
It helps create GitHub Actions workflows for tests, builds, security scanning, Docker publishing, and deployments. It supports Claude Code, Codex, and Cursor.
What secrets are required for deployment and scanning?
AWS deployment uses AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. Snyk needs SNYK_TOKEN, while Slack notifications use SLACK_WEBHOOK; the required secrets depend on the selected workflow.
Source text
SKILL.md · MIT
---
name: github-actions-templates
description: Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications. Use when setting up CI/CD with GitHub Actions, automating development workflows, or creating reusable workflow templates.
---
# GitHub Actions Templates
Production-ready GitHub Actions workflow patterns for testing, building, and deploying applications.
## Purpose
Create efficient, secure GitHub Actions workflows for continuous integration and deployment across various tech stacks.
## When to Use
- Automate testing and deployment
- Build Docker images and push to registries
- Deploy to Kubernetes clusters
- Run security scans
- Implement matrix builds for multiple environments
## Common Workflow Patterns
### Pattern 1: Test Workflow
```yaml
name: Test
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Run tests
run: npm test
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
files: ./coverage/lcov.info
```
### Pattern 2: Build and Push Docker Image
```yaml
name: Build and Push
on:
push:
branches: [main]
tags: ["v*"]
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
```
### Pattern 3: Deploy to Kubernetes
```yaml
name: Deploy to Kubernetes
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-2
- name: Update kubeconfig
run: |
aws eks update-kubeconfig --name production-cluster --region us-west-2
- name: Deploy to Kubernetes
run: |
kubectl apply -f k8s/
kubectl rollout status deployment/my-app -n production
kubectl get services -n production
- name: Verify deployment
run: |
kubectl get pods -n production
kubectl describe deployment my-app -n production
```
### Pattern 4: Matrix Build
```yaml
name: Matrix Build
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: pytest
```
## Workflow Best Practices
1. **Use specific action versions** (@v4, not @latest)
2. **Cache dependencies** to speed up builds
3. **Use secrets** for sensitive data
4. **Implement status checks** on PRs
5. **Use matrix builds** for multi-version testing
6. **Set appropriate permissions**
7. **Use reusable workflows** for common patterns
8. **Implement approval gates** for production
9. **Add notification steps** for failures
10. **Use self-hosted runners** for sensitive workloads
## Reusable Workflows
```yaml
# .github/workflows/reusable-test.yml
name: Reusable Test Workflow
on:
workflow_call:
inputs:
node-version:
required: true
type: string
secrets:
NPM_TOKEN:
required: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
- run: npm ci
- run: npm test
```
**Use reusable workflow:**
```yaml
jobs:
call-test:
uses: ./.github/workflows/reusable-test.yml
with:
node-version: "20.x"
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
```
## Security Scanning
```yaml
name: Security Scan
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
scan-type: "fs"
scan-ref: "."
format: "sarif"
output: "trivy-results.sarif"
- name: Upload Trivy results to GitHub Security
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: "trivy-results.sarif"
- name: Run Snyk Security Scan
uses: snyk/actions/[email protected]
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
```
## Deployment with Approvals
```yaml
name: Deploy to Production
on:
push:
tags: ["v*"]
jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: production
url: https://app.example.com
steps:
- uses: actions/checkout@v4
- name: Deploy application
run: |
echo "Deploying to production..."
# Deployment commands here
- name: Notify Slack
if: success()
uses: slackapi/slack-github-action@v1
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK }}
payload: |
{
"text": "Deployment to production completed successfully!"
}
```
## Related Skills
- `gitlab-ci-patterns` - For GitLab CI workflows
- `deployment-pipeline-design` - For pipeline architecture
- `secrets-management` - For secrets handling
© Seth Hobson · MIT · wshobson/agents