github-actions
GitHub Actions Skill
Design and implement GitHub Actions workflows for CI/CD automation.
When to Use This Skill
Keywords: github actions, ci/cd, workflow, pipeline, build, deploy, continuous integration, continuous deployment, yaml workflow, job, step, runner, matrix, reusable workflow
Use this skill when:
- Creating new GitHub Actions workflows
- Reviewing existing workflow files
- Designing CI/CD pipelines for repositories
- Setting up build/test/deploy automation
- Implementing reusable workflow patterns
MANDATORY: Documentation-First Approach
Before creating workflows:
- Verify syntax via MCP servers (context7 for GitHub Actions docs)
- Check for existing patterns in the repository
- Use official actions where possible (actions/checkout, actions/setup-node, etc.)
Workflow Structure Overview
name: Workflow Name
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
job-name:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Step name
run: echo "Hello"
Key Concepts
Triggers (on)
| Trigger | Use Case |
|---|---|
push |
Run on every push to specified branches |
pull_request |
Run on PR events |
workflow_dispatch |
Manual trigger |
schedule |
Cron-based scheduling |
workflow_call |
Called by other workflows (reusable) |
Job Configuration
| Setting | Purpose |
|---|---|
runs-on |
Runner environment (ubuntu-latest, windows-latest, macos-latest) |
needs |
Job dependencies |
if |
Conditional execution |
strategy.matrix |
Matrix builds |
environment |
Deployment environment with protection rules |
Common Actions
| Action | Purpose |
|---|---|
actions/checkout@v4 |
Checkout repository |
actions/setup-node@v4 |
Setup Node.js |
actions/setup-python@v5 |
Setup Python |
actions/setup-dotnet@v4 |
Setup .NET |
actions/cache@v4 |
Cache dependencies |
actions/upload-artifact@v4 |
Upload build artifacts |
Best Practices
Security
permissions:
contents: read # Minimal permissions
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # Pin to specific version
Caching
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
Matrix Builds
strategy:
matrix:
node-version: [18, 20, 22]
os: [ubuntu-latest, windows-latest]
jobs:
test:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
Reusable Workflows
# .github/workflows/reusable-test.yml
on:
workflow_call:
inputs:
node-version:
type: string
default: '20'
secrets:
NPM_TOKEN:
required: false
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 && npm test
Calling reusable workflow:
jobs:
call-test:
uses: ./.github/workflows/reusable-test.yml
with:
node-version: '20'
secrets: inherit
Workflow Patterns
PR Validation
name: PR Validation
on:
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run lint
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
build:
needs: [lint, test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run build
Release Workflow
name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: dist/*
generate_release_notes: true
Common Issues
| Issue | Solution |
|---|---|
| Permission denied | Add permissions block with required access |
| Action not found | Check action version and repository |
| Cache not working | Verify key pattern matches file paths |
| Job dependency failed | Check needs references and job names |
MCP Research
For current GitHub Actions patterns:
perplexity: "GitHub Actions best practices 2026"
context7: "github-actions" (for official documentation)
Version History
- v1.0.0 (2026-01-17): Initial release
Last Updated: 2026-01-17
More from melodic-software/claude-code-plugins
design-thinking
Design Thinking methodology for human-centered innovation. Covers the 5-phase IDEO/Stanford d.school approach (Empathize, Define, Ideate, Prototype, Test) with workshop facilitation and exercise templates.
191plantuml-syntax
Authoritative reference for PlantUML diagram syntax. Provides UML and non-UML diagram types, syntax patterns, examples, and setup guidance for generating accurate PlantUML diagrams.
161system-prompt-engineering
Design effective system prompts for custom agents. Use when creating agent system prompts, defining agent identity and rules, or designing high-impact prompts that shape agent behavior.
141architecture-documentation
Generate architecture documents using templates with diagram integration. Use for creating C4 diagrams, viewpoint documents, and technical overviews.
126data-modeling
Data modeling with Entity-Relationship Diagrams (ERDs), data dictionaries, and conceptual/logical/physical models. Documents data structures, relationships, and attributes.
101resume-optimization
Resume structure, achievement bullet formulas, ATS optimization, and job-targeted tailoring for software engineers. Use when reviewing resumes, crafting achievement bullets, extracting keywords from job descriptions, or tailoring content for specific roles.
93