Skip to content
Skills Library
DevOps & cloud · Building & coding

github-actions

/github-actions

Create, evaluate, and optimize GitHub Actions workflows and custom actions. Use when building CI/CD pipelines, creating workflow files, developing custom actions, troubleshooting workflow failures, performing security analysis, optimizing performance, or reviewing GitHub Actions best practices. Covers Ruby/Rails, TypeScript/Node.js, Heroku and Fly.io deployments.

Repository
ai-context ↗
Licence
MIT
Last repository change
21.07.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
7
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 21.07.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Create, evaluate, and optimize GitHub Actions workflows and custom actions. Use when building CI/CD pipelines, creating workflow files, developing custom actions, troubleshooting workflow failures, performing security analysis, optimizing performance, or reviewing GitHub Actions best practices. Covers Ruby/Rails, TypeScript/Node.js, Heroku and Fly.io deployments.

Original author description

Create, evaluate, and optimize GitHub Actions workflows and custom actions. Use when building CI/CD pipelines, creating workflow files, developing custom actions, troubleshooting workflow failures, performing security analysis, optimizing performance, or reviewing GitHub Actions best practices. Covers Ruby/Rails, TypeScript/Node.js, Heroku and Fly.io deployments.

How it works

  1. Quick Start
  2. Creating Workflows
  3. Evaluating Workflows
  4. Critical Security Patterns
  5. Key Anti-Patterns
  6. Concurrency Control
  7. Reference Guides
  8. Validation Checklist
Original SKILL.md headings · 167 lines, 602 words
SKILL.md preview
---
name: github-actions
description: Create, evaluate, and optimize GitHub Actions workflows and custom actions. Use when building CI/CD pipelines, creating workflow files, developing custom actions, troubleshooting workflow failures, performing security analysis, optimizing performance, or reviewing GitHub Actions best practices. Covers Ruby/Rails, TypeScript/Node.js, Heroku and Fly.io deployments.
---

# GitHub Actions

GitHub Actions automates software workflows with event-driven CI/CD pipelines. Workflows are YAML files in `.github/workflows/` that define jobs, steps, and actions triggered by repository events.

**Action types:**
- **Workflow files**: CI/CD pipelines using existing actions (`.github/workflows/*.yml`)
- **Custom JavaScript actions**: Fast, cross-platform, use `@actions/toolkit`
- **Custom Docker actions**: Full environment control, Linux only, slower startup
- **Composite actions**: Combine multiple steps into reusable units

## Quick Start

```yaml
# .github/workflows/ci.yml
name: CI
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

permissions:
  contents: read

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: npm test
```

**Ruby/Rails with RSpec:**

```yaml
- uses: ruby/setup-ruby@v1
  with:
    ruby-version: .ruby-version
    bundler-cache: true

- name: Setup database
  env:
    RAILS_ENV: test
  run: bin/rails db:setup

- run: bundle exec rspec
```

**TypeScript/Node.js:**

```yaml
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'

- run: npm ci
- run: npm run build --if-present
- run: npm test
```

**Deploy to Fly.io:**

```yaml
- uses: superfly/flyctl-actions/setup-flyctl@1.5
- run: flyctl deploy --remote-only
  env:
    FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
```

## Creating Workflows

1. **Identify triggers**: push, pull_request, workflow_dispatch, schedule, etc.
2. **Define jobs**: Specify runner OS, steps, and dependencies
3. **Add security**: Set GITHUB_TOKEN permissions to read-only, pin actions to SHA
4. **Optimize performance**: Enable caching, use matrix builds for parallelization
5. **Test locally**: Use `act` or GitHub CLI to test before pushing

## Evaluating Workflows

1. **Security scan**: Check permissions, secrets exposure, action pinning, pull_request_target usage
2. **Performance analysis**: Identify slow steps, missing caches, parallelization opportunities
3. **Best practices review**: Validate naming, structure, error handling, documentation

## Critical Security Patterns

1. **Always set GITHUB_TOKEN permissions to read-only**:
   ```yaml
   permissions:
     contents: read
   ```

2. **Pin actions to commit SHA** (most secure):
   ```yaml
   - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
   ```

3. **Use OIDC for cloud deployments** (credential-less):
   ```yaml
   permissions:
     id-token: write
     contents: read
   ```

4. **Avoid pull_request_target with untrusted code** - runs in base repository context with access to secrets

5. **Never log secrets** - use `::add-mask::` for dynamic values

6. **Validate user-controlled inputs via environment variables**:
   ```yaml
   - env:
       TITLE: ${{ github.event.issue.title }}
     run: echo "Title: $TITLE"
   ```

For complete security guidelines, see [references/security-checklist.md](references/security-checklist.md).

## Key Anti-Patterns

- Running as root in Docker actions
- Hardcoded secrets (always use GitHub Secrets)
- Overly broad permissions
- No caching (wastes time on every run)
- Sequential jobs that could be parallel
- Using branch references for actions (use tags or SHAs)
- No `timeout-minutes` (jobs default to 6 hours)
- `fetch-depth: 0` when full history isn't needed

## Concurrency Control

Cancel outdated runs to save resources:

```yaml
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
```

## Reference Guides

For detailed information on specific topics:

- **[Workflow Syntax](references/workflow-syntax.md)**: Complete YAML reference - triggers, jobs, steps, expressions, contexts, matrix, reusable workflows
- **[Custom Actions](references/custom-actions.md)**: Building JavaScript, Docker, and composite actions with `@actions/toolkit`
- **[Security Checklist](references/security-checklist.md)**: GITHUB_TOKEN permissions, action pinning, OIDC setup, secrets management, input validation, self-hosted runner security
- **[Performance Optimization](references/performance-optimization.md)**: Dependency caching (Ruby/Node/Python/Docker), parallelization, selective triggers, test splitting, self-hosted runners
- **[Common Workflows](references/common-workflows.md)**: Production-ready templates for Rails CI/CD, TypeScript CI, Heroku/Fly.io deployments, monorepos, release automation, full-stack examples
- **[Troubleshooting](references/troubleshooting.md)**: Permission errors, caching issues, secret problems, database connections, timeout debugging, `act` for local testing

## Validation Checklist

**Pre-deployment:**
- YAML syntax valid
- Required secrets configured
- GITHUB_TOKEN permissions set to minimum required
- Actions pinned to SHA or trusted tags
- Caching configured for dependencies
- Workflow triggers appropriate for use case

**Post-deployment:**
- First run completes successfully
- Execution time acceptable (<15 min for full CI)
- No secrets in logs
- Cache hit rate >80% after first run
Files in this package (7)
  • SKILL.md 5 KB
  • references/common-workflows.md 20 KB
  • references/custom-actions.md 13 KB
  • references/performance-optimization.md 15 KB
  • references/security-checklist.md 15 KB
  • references/troubleshooting.md 16 KB
  • references/workflow-syntax.md 12 KB

Versions

RepositoryScoreLicence
This page · el-feo/ai-context100MIT
ericrisco/rsc-harness100MIT
lamberto15/turboship100MIT
TerminalSkills/skills100Apache-2.0
jelvodev/yaap100MIT
tddworks/claudebar100Apache-2.0
OpenHands/extensions100MIT
tartinerlabs/skills100MIT
meyshad/skillforge100MIT

Database snapshot: 13.11.2026 · package version 7565807b486a (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100actions
    Create and configure GitHub Actions. Use when building custom actions, setting up runners, implementing security practices, or publishing to the marketplace.
  • 95github-actions-generator
    Generates production-ready GitHub Actions workflows, custom actions, and CI/CD configurations following security and performance standards. Creates CI/CD pipelines, test workflows, deployment configurations, matrix builds, caching strategies, composite actions, Docker actions,…
  • 100github-actions-templates
    Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications. Use when setting up CI/CD with GitHub Actions, automating development workflows, or creating reusable workflow templates.
  • 100ghactions
    GitHub Actions workflows, custom actions, CI/CD. Matrix builds, reusable workflows, composite actions, caching, security hardening. Triggers on: /godmode:ghactions, "GitHub Actions", "workflow", ".github/workflows", "matrix build".
  • 100workflows
    Write and optimize GitHub Actions workflows. Use when creating CI/CD pipelines, configuring workflow triggers, managing artifacts, or debugging workflow runs.
  • 100github-actions-review
    Review GitHub Actions workflows for correctness, security, and maintainability. Use when reviewing GitHub Actions workflow PRs, checking workflow security, evaluating CI/CD pipeline design, or assessing permissions and secret handling.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.