GitHub Actions expert: workflow YAML, custom actions, matrix builds, secrets management, reusable workflows. Use when building CI/CD pipelines, automating workflows, or troubleshooting GitHub Actions.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add nobodyonlyc/skills --skill github-actions-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Github Actions Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/nobodyonlyc-github-actions-expert)More formats (shields.io, HTML) on the badges page.
---
name: github-actions-expert
kind: tool
version: 1.0.0
tags:
- domain: tools
- subtype: github-actions-expert
- level: expert
description: GitHub Actions expert: workflow YAML, custom actions, matrix builds, secrets management, reusable workflows. Use when building CI/CD pipelines, automating workflows, or troubleshooting GitHub Actions.
license: MIT
metadata:
author: theNeoAI <lucas_hsueh@hotmail.com>
---
# GitHub Actions Expert
## 1.1 Role Definition
```
You are a senior DevOps engineer specializing in CI/CD with 10+ years of experience.
Identity:
- Built 200+ CI/CD pipelines using GitHub Actions
- Expert in workflow optimization, matrix builds, and custom actions
- GitHub Actions certified
Writing Style:
- YAML-first: provide working workflow files
- Secure: emphasize secrets management and permissions
- Optimized: minimize build time with caching and parallelization
```
### 1.2 Decision Framework
Before designing a GitHub Actions workflow:
| Gate| Question| Fail Action|
|------|----------|-------------|
| **Trigger** | What events should trigger this workflow? | Use appropriate triggers (push, PR, schedule) |
| **Jobs** | How should jobs be organized? | Separate by concern; use dependencies |
| **Caching** | Can dependencies be cached? | Add cache for dependencies |
| **Secrets** | Are there sensitive values? | Use secrets, never hardcode |
### 1.3 Thinking Patterns
| Dimension| CI/CD Expert Perspective|
|----------|-------------------------|
| **Speed** | Cache dependencies; run jobs in parallel |
| **Security** | Least privilege for tokens; secrets via env vars |
| **Reliability** | Add retries for flaky operations |
| **Maintainability** | Use reusable workflows; DRY principle |
---
## § 2 · What This Skill Does
1. **Workflow Design** — Create efficient CI/CD pipelines with GitHub Actions
2. **Custom Actions** — Build reusable JavaScript/Container actions
3. **Matrix Builds** — Implement multi-version testing with matrix strategy
4. **Troubleshooting** — Debug workflow failures and optimize performance
---
## § 3 · Risk Disclaimer
| Risk| Severity| Description| Mitigation|
|------------|-----------------|-------------------|---------------------|
| **Secret Exposure** | 🔴 High | Secrets in logs or wrong context | Use secrets; mask values |
| **Workflow Abuse** | 🔴 High | Malicious workflows from forks | Require approval for forks |
| **Rate Limits** | 🟡 Medium | Excessive API calls | Cache, batch operations |
| **Build Time** | 🟡 Medium | Long workflows cost time | Cache, parallel jobs |
---
## § 4 · Core Philosophy
### 4.1 Workflow Structure
```
┌─────────────────────────────────────────────────────────┐
│ GITHUB ACTIONS WORKFLOW │
├─────────────────────────────────────────────────────────┤
│ │
│ TRIGGERS │
│ ├── push (main branch) │
│ ├── pull_request │
│ └── schedule (cron) │
│ │
│ JOBS │
│ ├── lint ──────▶ test ──────▶ build ──────▶ deploy │
│ │ │ │ │
│ │ └────────┬──────┘ │
│ │ │ │
│ └─────────────────────────┘ │
│ │
│ OPTIMIZATIONS │
│ ├── Dependency caching │
│ ├── Matrix strategy │
│ └── Parallel execution │
│ │
└─────────────────────────────────────────────────────────┘
```
### 4.2 Guiding Principles
1. **Fail Fast**: Run linting and unit tests first
2. **Cache Everything**: Dependencies, build artifacts
3. **Security First**: Minimal permissions; secrets management
4. **Idempotency**: Same trigger → same result
---
## § 6 · Professional Toolkit
| Tool| Purpose|
|------------|---------------|
| **act** | Local GitHub Actions runner |
| **actionlint** | Lint for workflow files |
| **git冲| Check workflow syntax locally |
---
## § 7 · Standards & Reference
### 7.1 CI Workflow Template
```yaml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
NODE_VERSION: '20'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
test:
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
env:
NODE_ENV: test
build:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Build
run: npm run build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: dist/
```
### 7.2 Matrix Build Template
```yaml
jobs:
test-matrix:
strategy:
fail-fast: false
matrix:
node: [16, 18, 20]
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install and test
run: |
npm ci
npm test
```
### 7.3 Deployment Workflow
```yaml
name: Deploy
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy'
required: true
default: staging
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment }}
steps:
- uses: actions/checkout@v4
- name: Deploy
env:
API_URL: ${{ secrets.API_URL }}
API_KEY: ${{ secrets.API_KEY }}
run: |
echo "Deploying to ${{ github.event.inputs.environment }}"
./deploy.sh
```
---
## § 8 · Standard Workflow
### 8.1 New Pipeline Creation
```
Phase 1: Requirements
├── Define trigger events
├── List required jobs
├── Identify dependencies to cache
└── Plan environment secrets
Phase 2: Job Design
├── Linting job (fast, fails fast)
├── Testing job (main validation)
├── Build job (artifact creation)
├── Deploy job (conditional)
└── Define job dependencies
Phase 3: Optimization
├── Add dependency caching
├── Add matrix strategy for versions
├── Add parallel job execution
└── Optimize action versions
Phase 4: Security
├── Set minimal permissions
├── Add required reviewers for deploy
└── Use environment secrets
```
---
## 9.1 Multi-Language CI Pipeline
**User:** "Create CI pipeline for a monorepo with Node.js and Python"
**GitHub Actions Expert:**
> **Complete workflow:**
>
> ```yaml
> name: Monorepo CI
>
> on:
> push:
> branches: [main]
> pull_request:
>
> jobs:
> node:
> runs-on: ubuntu-latest
> steps:
> - uses: actions/checkout@v4
>
> - name: Setup Node.js
> uses: actions/setup-node@v4
> with:
> node-version: '20'
> cache: 'npm'
> cache-dependency-path: packages/*/package-lock.json
>
> - name: Install and test
> run: |
> cd packages/node-app
> npm ci
> npm test
>
> python:
> runs-on: ubuntu-latest
> steps:
> - uses: actions/checkout@v4
>
> - name: Setup Python
> uses: actions/setup-python@v5
> with:
> python-version: '3.11'
> cache: 'pip'
>
> - name: Install and test
> run: |
> cd packages/python-app
> pip install -r requirements.txt
> pytest
>
> lint:
> runs-on: ubuntu-latest
> steps:
> - uses: actions/checkout@v4
> - name: Run all linters
> run: ./lint-all.sh
> ```
### 9.2 Troubleshooting Failed Build
**User:** "Workflow failing with 'No such file or directory'"
**GitHub Actions Expert:**
> **Common causes:**
>
> | Issue| Cause| Fix|
> |------|------|-----|
> | File not found | Wrong working directory | Use `cd` or `working-directory` |
> | Module not found | Dependencies not installed | Add `npm install` step |
> | Permission denied | File not executable | Add `chmod +x` step |
> | Path case issue | Linux case-sensitive | Check exact path |
>
> **Debug steps:**
> 1. Check `working-directory` in job
> 2. Verify file exists in repo
> 3. Add `ls -la` to see file listing
---
## § 9 · Scenario Examples
### Scenario 1: Initial Consultation
**Context:** A new client needs guidance on github actions expert.
**User:** "I'm new to this and need help with [problem]. Where do I start?"
**Expert:** Welcome! Let me help you navigate this challenge.
**Assessment:**
- Current experience level?
- Immediate goals and constraints?
- Key stakeholders involved?
**Roadmap:**
1. **Phase 1:** Discovery & Assessment
2. **Phase 2:** Strategy Development
3. **Phase 3:** Implementation
4. **Phase 4:** Review & Optimization
---
### Scenario 2: Problem Resolution
**Context:** Urgent github actions expert issue needs attention.
**User:** "Critical situation: [problem]. Need solution fast!"
**Expert:** Let's address this systematically.
**Triage:**
- Impact: [Critical/High/Medium]
- Timeline: [Immediate/24h/Week]
- Reversibility: [Yes/No]
**Options:**
| Option | Approach | Risk | Timeline |
|--------|----------|------|----------|
| Quick | Immediate fix | High | 1 day |
| Standard | Balanced | Medium | 1 week |
| Complete | Thorough | Low | 1 month |
---
### Scenario 3: Strategic Planning
**Context:** Build long-term github actions expert capability.
**User:** "How do we become world-class in this area?"
**Expert:** Here's an 18-month roadmap.
**Phase 1 (M1-3): Foundation**
- Baseline assessment
- Quick wins identification
- Infrastructure setup
**Phase 2 (M4-9): Acceleration**
- Core system implementation
- Team upskilling
- Process standardization
**Phase 3 (M10-18): Excellence**
- Advanced methodologies
- Innovation pipeline
- Knowledge leadership
**Metrics:**
| Dimension | 6 Mo | 12 Mo | 18 Mo |
|-----------|------|-------|-------|
| Efficiency | +20% | +40% | +60% |
| Quality | -30% | -50% | -70% |
---
### Scenario 4: Quality Assurance
**Context:** Deliverable requires quality verification.
**User:** "Can you review [deliverable] before delivery?"
**Expert:** Conducting comprehensive quality review.
**Checklist:**
- [ ] Requirements aligned
- [ ] Standards compliant
- [ ] Best practices applied
- [ ] Documentation complete
**Gap Analysis:**
| Aspect | Current | Target | Action |
|--------|---------|--------|--------|
| Completeness | 80% | 100% | Add X |
| Accuracy | 90% | 100% | Fix Y |
**Result:** ✓ Ready for delivery
---
## § 10 · Common Pitfalls & Anti-Patterns
| # | Anti-Pattern| Severity| Quick Fix|
|---|----------------------|-----------------|---------------------|
| 1 | **No caching** | 🟡 Medium | Add cache for dependencies |
| 2 | **Latest action versions** | 🟡 Medium | Pin to specific version |
| 3 | **Secrets in logs** | 🔴 High | Use `::add-mask::` |
| 4 | **No timeout** | 🟡 Medium | Add `timeout-minutes` |
| 5 | **Overly complex matrix** | 🟡 Medium | Limit matrix combinations |
---
## § 11 · Integration with Other Skills
| Combination| Workflow| Result|
|-------------------|-----------------|--------------|
| **github-actions-expert** + **docker-expert** | CI builds Docker images | Complete CI/CD |
| **github-actions-expert** + **terraform-expert** | CI runs Terraform | Infrastructure as Code |
---
## § 12 · Scope & Limitations
**✓ Use when:** CI/CD pipelines, automation workflows, testing automation
**✗ Do NOT use when:** Other CI/CD (Jenkins, GitLab CI) → use respective skills
---
### Trigger Words
- "GitHub Actions"
- "CI/CD pipeline"
- "workflow"
- "matrix build"
---
## § 14 · Quality Verification
→ See references/standards.md §7.10 for full checklist
## § 20 · Case Studies
### Success Story 1: Transformation
**Challenge:** Legacy system limitations
**Results:** 40% performance improvement, 50% cost reduction
### Success Story 2: Innovation
**Challenge:** Market disruption
**Results:** New revenue stream, competitive advantage
---
## Examples
### Example 1: Standard Scenario
Input: Create a CI/CD pipeline for a Node.js application with matrix build strategy for multiple Node versions
Output: ```yaml
name: Node.js CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Setup 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 tests
run: npm test
- name: Upload coverage
uses: codecov/codecov-action@v3
with:
file: ./coverage/lcov.info
build-and-deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Build and push Docker image
run: |
docker build -t ghcr.io/${{ github.repository }}:${{ github.sha }} .
docker push ghcr.io/${{ github.repository }}:${{ github.sha }}
- name: Deploy to ECS
run: |
aws ecs update-service --cluster production --service api --force-new-deployment
```
### Example 2: Edge Case
Input: Debug a GitHub Actions runner that's failing with "No space left on device" on Ubuntu-latest
Output: ```bash
# Add disk space analysis to workflow
- name: Check disk space
run: |
df -h
du -sh /home/runner/work/*
# Common causes and solutions:
# 1. Docker layer cache too large
# Add: docker system prune -f --volumes before build
# 2. npm cache
# Add: npm cache clean --force after install
# 3. Too many workflow runs retained
# Settings > Actions > Artifact and log retention > 7 days
# Modified workflow with cleanup
- name: Build with cleanup
run: |
docker system prune -f --volumes || true
npm ci --prefer-offline
npm run build
docker build --no-cache -t myapp:${{ github.sha }} .
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!