Back to skills
SKILL.md
Github Actions Expert
BSecurityGitHub Actions expert: workflow YAML, custom actions, matrix builds, secrets management, reusable workflows. Use when building CI/CD pipelines, automating workflows, or troubleshooting GitHub Actions.
- 2 stars
- 0 votes
- 0 copies
- 1 view
- Added September 8, 2026
Works with
Security analysis
84/100- Installs packages at runtime which could introduce malicious dependencies
- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 5 files and shows the line behind each finding
npx -y skills add nobodyonlyc/skills --skill github-actions-expert --agent claude-codeAre you the author of Github Actions Expert?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/nobodyonlyc-github-actions-expert)---
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 }} .
```
Files in this skill
- SKILL.md
- references/glossary.md
- references/scenarios.md
- references/standards.md
- references/troubleshooting.md
Attribution
Comments
Loading comments…