github-actions
$
npx mdskill add partme-ai/full-stack-skills/github-actionsGuides developers in creating and managing GitHub Actions workflows for CI/CD automation and process optimization.
- Helps users create, debug, and configure workflows for automating software development tasks.
- Integrates with GitHub Actions platform, including official and third-party actions for various operations.
- Recommends solutions based on user queries about triggers, jobs, secrets, and reusable workflows.
- Presents guidance through structured steps, examples, and YAML code snippets for implementation.
SKILL.md
.github/skills/github-actionsView on GitHub ↗
---
name: github-actions
description: "Provides comprehensive guidance for GitHub Actions including workflow creation, CI/CD pipelines, secrets management, matrix strategies, and reusable workflows. Use when the user asks about GitHub Actions, needs to create workflows, automate processes, or configure CI/CD."
license: Complete terms in LICENSE.txt
---
## When to use this skill
Use this skill whenever the user wants to:
- Create or debug GitHub Actions workflows (`.github/workflows/*.yml`)
- Configure triggers, jobs, steps, secrets, matrix strategies, or reusable workflows
- Integrate checkout, build, test, deploy, and notification steps
- Optimize workflow performance with caching and concurrency controls
## How to use this skill
### Workflow
1. **Create workflow file** — add YAML to `.github/workflows/`
2. **Define triggers** — specify `on` events (push, pull_request, schedule, etc.)
3. **Configure jobs and steps** — use official and third-party actions
4. **Test and iterate** — push to trigger, check logs, fix failures
### Quick Start Example
```yaml
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20]
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'
- run: npm ci
- run: npm test
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- name: Deploy
env:
DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
run: ./scripts/deploy.sh
```
### Reusable Workflow Example
```yaml
# .github/workflows/reusable-build.yml
on:
workflow_call:
inputs:
node-version:
type: string
default: '20'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
- run: npm ci && npm run build
```
## Best Practices
- Store tokens and keys in `secrets` — never echo sensitive values in logs
- Add `id` and `outputs` to key steps for downstream consumption
- Cache dependencies with `actions/cache` or built-in setup action caching
- Use `concurrency` to cancel outdated workflow runs on the same branch
- Pin action versions to a SHA or major version tag for security
## Troubleshooting
- **Workflow not triggered**: Verify the `on` event matches your branch and event type
- **Permission denied**: Check `permissions` block and repository settings for GITHUB_TOKEN scope
- **Cache miss**: Ensure the cache key includes lockfile hash (e.g., `hashFiles('**/package-lock.json')`)
- **Matrix failures**: Use `continue-on-error` selectively; check logs per matrix combination
## Keywords
github actions, workflow, yaml, CI/CD, automation, matrix strategy, reusable workflows, secrets