github-actions

SKILL.md

GitHub Actions

Quick Start

Create a workflow file at .github/workflows/<name>.yml:

name: CI
on: push
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: echo "Hello World"

Essential concepts:

  • Workflow: Automated process defined in YAML, runs in response to events
  • Job: Set of steps that run on the same runner
  • Step: Individual action or shell command
  • Action: Reusable unit of code (GitHub marketplace or custom)
  • Event: What triggers the workflow (push, pull_request, schedule, etc.)

Common Workflow Patterns

Continuous Integration (CI)

  • Testing: Run tests on every push/PR
  • Linting: Code quality checks
  • Building: Compile code, build artifacts
  • See: references/tutorials/build-and-test-code/

Continuous Deployment (CD)

  • Deploy to production: Merge to main → deploy
  • Multi-environment: dev/staging/prod with approvals
  • Blue-green deployment: Zero-downtime deployments
  • See: references/how-tos/deploy/

Scheduled Tasks

on:
  schedule:
    - cron: '0 0 * * *'  # Daily at midnight

Matrix Builds

strategy:
  matrix:
    os: [ubuntu-latest, windows-latest]
    node: [14, 16, 18]

Workflow Syntax Reference

Required Structure

  • name: Workflow name
  • on: Triggers (events, schedules, manual)
  • jobs: One or more jobs

Key Job Fields

  • runs-on: Runner type (ubuntu-latest, windows-latest, macos-latest, self-hosted)
  • steps: Sequential list of steps
  • strategy: Matrix, fail-fast, max-parallel
  • outputs: Job-to-job data passing

Key Step Types

steps:
  - name: 'Checkout code'
    uses: actions/checkout@v4

  - name: 'Run script'
    run: npm test

  - name: 'Use action'
    uses: actions/setup-node@v4
    with:
      node-version: '18'

Complete syntax reference: references/reference/workflows-and-actions/workflow-syntax.md

Trigger Events

Common Events

  • push: Commits pushed to branch
  • pull_request: PR opened/updated/closed
  • workflow_dispatch: Manual trigger
  • schedule: Cron-based execution

Advanced Events

  • release: Release published
  • workflow_call: Reusable workflow
  • repository_dispatch: Webhook-triggered
  • environment: Environment deployment

Complete events reference: references/reference/workflows-and-actions/events-that-trigger-workflows.md

Expressions and Contexts

Expression Syntax

if: github.event_name == 'push'
runs-on: ${{ matrix.os }}

Common Contexts

  • github: Event details, repo, actor, ref
  • env: Environment variables
  • job: Job status, outputs
  • steps: Step outputs
  • runner: Runner OS, architecture
  • secrets: Encrypted secrets
  • vars: Custom variables

Complete expressions reference: references/reference/workflows-and-actions/expressions.md Complete contexts reference: references/reference/workflows-and-actions/contexts.md

Security Best Practices

Secrets Management

steps:
  - run: deploy.sh ${{ secrets.API_KEY }}
  • Never log secrets (GitHub auto-redacts)
  • Use secrets context for sensitive data
  • Store in repository Settings → Secrets

Security guide: references/concepts/security/secrets.md

GITHUB_TOKEN

  • Automatically provided authentication
  • Scoped permissions for repo access
  • Use for repo operations (clone, push, create PR)

GITHUB_TOKEN reference: references/concepts/security/github_token.md

OIDC (OpenID Connect)

  • Cloud deployments without long-lived credentials
  • Supports AWS, Azure, GCP, and more
  • Configure OIDC in workflow and cloud provider

OIDC guide: references/concepts/security/openid-connect.md

Security Hardening

  • Pin action versions (@v4 not @main)
  • Require approval for external workflows
  • Use artifact attestations for supply chain security

Security hardening: references/how-tos/security-harden-workflows/

Reusable Workflows and Actions

Reusable Workflows

# .github/workflows/reusable.yml
on:
  workflow_call:
    inputs:
      version:
        required: true
        type: string

# Call from another workflow
jobs:
  call:
    uses: org/repo/.github/workflows/reusable.yml@main
    with:
      version: '1.0'

Composite Actions

Combine multiple steps into a reusable action.

Custom Actions

  • JavaScript/TypeScript actions
  • Docker actions
  • Composite actions

Reusable workflows: references/concepts/workflows-and-actions/reusing-workflow-configurations.md Custom actions: references/concepts/workflows-and-actions/custom-actions.md

Deployment Patterns

Environments

jobs:
  deploy:
    environment: production
    environment:
      url: https://example.com

Deployment Protection Rules

  • Require approval before production
  • Restrict who can deploy
  • Wait timers for manual review

Third-Platform Deployments

  • Azure: App Service, Kubernetes, Static Web Apps
  • AWS: ECS, EKS, Lambda
  • GCP: Kubernetes Engine, Cloud Run

Deployment guides: references/how-tos/deploy/

Caching Dependencies

- uses: actions/cache@v4
  with:
    path: node_modules
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}

Caching reference: references/concepts/workflows-and-actions/dependency-caching.md

Artifacts and Logs

Upload Artifacts

- uses: actions/upload-artifact@v4
  with:
    name: build-output
    path: dist/

Download Artifacts

- uses: actions/download-artifact@v4
  with:
    name: build-output

Artifacts reference: references/concepts/workflows-and-actions/workflow-artifacts.md

Troubleshooting

Enable Debug Logging

Add secret ACTIONS_STEP_DEBUG and ACTIONS_RUNNER_DEBUG to repository.

Common Issues

  • Permission errors: Check permissions scope
  • Path issues: Use ${{ github.workspace }}
  • Secret issues: Verify secret names and scopes

Viewing Logs

  • Actions tab → Workflow run → Job → Step
  • Download logs for offline analysis

Troubleshooting guide: references/how-tos/troubleshoot-workflows.md

Migrating from Other CI Systems

  • Jenkins: Import tool and manual patterns
  • GitLab CI: Syntax differences and equivalents
  • CircleCI: Migration patterns
  • Travis CI: Direct equivalents

Migration guides: references/tutorials/migrate-to-github-actions/

Language-Specific Guides

  • Node.js: references/tutorials/build-and-test-code/nodejs.md
  • Python: references/tutorials/build-and-test-code/python.md
  • Java: Maven, Gradle, Ant guides
  • .NET: Build and test patterns
  • Go, Rust, Ruby, PowerShell: Specific guides

Runners

GitHub-Hosted Runners

  • ubuntu-latest: Linux (Ubuntu)
  • windows-latest: Windows Server
  • macos-latest: macOS
  • Larger runners: More CPU/memory (paid)

Self-Hosted Runners

  • Custom environments
  • Private network access
  • Custom tools and dependencies

Runners reference: references/concepts/runners/

Complete Documentation Index

All 242 documentation files are available in references/:

Getting Started

  • Quickstart: references/get-started/quickstart.md
  • Understanding Actions: references/get-started/understand-github-actions.md
  • CI/CD overview: references/get-started/continuous-*.md

Concepts

  • Workflows: references/concepts/workflows-and-actions/
  • Runners: references/concepts/runners/
  • Security: references/concepts/security/

How-To Guides

  • Write workflows: references/how-tos/write-workflows/
  • Deploy: references/how-tos/deploy/
  • Create actions: references/how-tos/create-and-publish-actions/
  • Security hardening: references/how-tos/security-harden-workflows/

Reference

  • Workflow syntax: references/reference/workflows-and-actions/workflow-syntax.md
  • Events: references/reference/workflows-and-actions/events-that-trigger-workflows.md
  • Expressions: references/reference/workflows-and-actions/expressions.md
  • Contexts: references/reference/workflows-and-actions/contexts.md
  • Variables: references/reference/workflows-and-actions/variables.md
  • Workflow commands: references/reference/workflows-and-actions/workflow-commands.md

Tutorials

  • Build and test: references/tutorials/build-and-test-code/
  • Migrate to Actions: references/tutorials/migrate-to-github-actions/
  • Create actions: references/tutorials/create-actions/
  • Publish packages: references/tutorials/publish-packages/

Complete index: references/_index.md

Online Documentation

All documentation files include source URLs linking to the official GitHub Docs. Use these links to:

  • Verify information is current
  • Check for updates and changes
  • View rendered examples and screenshots
  • Report issues or suggest improvements

Official GitHub Actions Docs: https://docs.github.com/en/actions

Weekly Installs
7
GitHub Stars
6
First Seen
Mar 1, 2026
Installed on
gemini-cli7
opencode7
codebuddy7
github-copilot7
codex7
kimi-cli7