К основному содержанию
скилл CX Codex

github-actions · bagelhole — скилл для Claude Code: CI/CD в GitHub Actions

Скилл помогает агенту писать и править workflow-файлы GitHub Actions: сборка, тесты, деплой, секреты, кэш и self-hosted раннеры.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill github-actions -a claude-code
Открыть на GitHub

Что делает github-actions

Скилл даёт агенту готовые шаблоны YAML для .github/workflows/. Через него удобно собирать пайплайн с нуля: триггеры на push и pull_request, расписание по cron, ручной запуск через workflow_dispatch с выбором окружения. Дальше — matrix-сборки по версиям Node.js и ОС, зависимости между джобами через needs, защита окружения перед деплоем.

Внутри разобраны секреты и переменные (secrets.* и vars.*), кэширование зависимостей через actions/cache@v4, загрузка и скачивание артефактов, сборка Docker-образов с логином в Docker Hub. Отдельные разделы про reusable workflows с workflow_call и про регистрацию self-hosted раннера скриптом config.sh.

Для работы нужен репозиторий GitHub с правом записи и понимание синтаксиса YAML. Для self-hosted раннера понадобится сервер с Docker. Если workflow не срабатывает на push, скилл советует проверить фильтры веток и путей: файл должен лежать в ветке по умолчанию. Права на пуш и создание PR выдаются блоком permissions в самом workflow.

Какие задачи решает

  • собрать CI-пайплайн с тестами и сборкой на каждый push
  • настроить matrix-прогон по нескольким версиям Node.js и ОС
  • вынести деплой в переиспользуемый workflow с workflow_call
  • подключить секреты и переменные окружения без утечки в логи
  • разобраться, почему workflow не запускается или падает на правах

Примеры запросов агенту

  • Напиши workflow для сборки и тестов Node.js-проекта на push в main
  • Добавь в пайплайн кэш npm и загрузку артефакта dist/
  • Сделай reusable workflow для деплоя в staging с секретом deploy_key

Как установить github-actions

1Через Skills CLI (Vercel)

npx skills add BagelHole/DevOps-Security-Agent-Skills --skill github-actions -a claude-code

2Вручную: положить файлы

~/.claude/skills/github-actions/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/github-actions/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора127

podman Обучает агента управлять контейнерами и подами через Podman без демона. Пригодится для настройки rootless-окружения и генерации юнитов systemd. CX Codex +1 400установок incident-response Помогает реагировать на взломы и инциденты безопасности по регламенту из шести фаз: от фиксации доказательств до устранения уязвимостей. CX Codex +1 394установок kubernetes-ops Скилл для работы с кластером Kubernetes: манифесты деплойментов, сервисов и ингрессов, масштабирование и разбор упавших подов. CX Codex +1 391установок terraform-gcp Разворачивает инфраструктуру Google Cloud через Terraform. Настраивает провайдеры, модули VPC, кластеры GKE и базы Cloud SQL. CX Codex +1 389установок terraform-aws Разворачивает инфраструктуру AWS через Terraform, настраивает модули и хранение стейта. Пригодится при декларативном описании облачных ресурсов. CX Codex +1 387установок windows-hardening Скилл для агентов, который приводит Windows Server к Microsoft security baselines и CIS benchmarks: пароли, Group Policy, Windows Defender, SMB. CX Codex +1 388установок audit-logging Скилл помогает настроить централизованный аудит-лог, хранение и отправку событий в SIEM. Пригодится, когда нужен след действий для комплаенса или разбора инцидентов. CX Codex +1 385установок redis Скилл для настройки Redis: кеш, очереди, Sentinel, кластер. Пригодится, когда агенту нужно развернуть или подкрутить Redis в проекте. CX Codex +1 379установок

Другие версии github-actions

Похожие

github-actions-generator akin-ozer Скилл собирает рабочие процессы GitHub Actions, кастомные экшены и переиспользуемые пайплайны по вашей задаче. Пригодится, когда нужно быстро получить .github/workflows без ручного перебора версий экшенов. CX Codex +1 643установок github-actions-hardening официальный github Проверяет .github/workflows/*.yml на угрозы, которых не видят линтеры: подстановку чужого текста в run:, привилегированные триггеры и незакреплённые экшены. 2 200установок github-actions-ci-cd-best-practices официальный github Правило для GitHub Copilot: подсказывает структуру workflow, работу с секретами, кэшем и матрицами при правке файлов в .github/workflows/. ★ 40 418звёзд репо github-actions-workflow aj-geddes Скилл для сборки GitHub Actions: тесты, сборка, сканирование безопасности и деплой прямо из репозитория. CX Codex +1 620установок github-actions-validator akin-ozer Скилл проверяет синтаксис workflows GitHub Actions через actionlint и тестирует их локально через act. Помогает находить опечатки в раннерах и устаревшие actions до коммита. CX Codex +1 638установок github-actions-templates Seth Hobson Скилл создаёт GitHub Actions для тестирования, сборки и деплоя. Подойдёт, когда в проекте нужно настроить CI/CD или reusable workflows. CX Codex 17 420установок

Рядом в теме «DevOps и инфраструктура»

Всё по теме «DevOps и инфраструктура» →

Вопросы о github-actions

Как установить github-actions в Claude?

Выполните npx skills add BagelHole/DevOps-Security-Agent-Skills --skill github-actions -a claude-code. Файл скилла окажется по пути ~/.claude/skills/github-actions/SKILL.md.

Что делает скилл github-actions?

Помогает агенту писать и отлаживать workflow-файлы GitHub Actions: триггеры, джобы, секреты, кэш, артефакты, Docker-сборки и self-hosted раннеры.

Что нужно, чтобы скилл сработал?

Репозиторий GitHub с правом записи и понимание YAML. Для self-hosted раннера — сервер с Docker.

Исходный текст

SKILL.md · MIT
---
name: github-actions
description: Build, test, and deploy applications using GitHub Actions workflows. Create CI/CD pipelines, configure runners, manage secrets, and automate software delivery. Use when working with GitHub repositories, automating builds, running tests, or deploying applications.
license: MIT
metadata:
  author: devops-skills
  version: "1.0"
---

# GitHub Actions

Automate software workflows directly in your GitHub repository with GitHub Actions.

## When to Use This Skill

Use this skill when:
- Setting up CI/CD pipelines for GitHub repositories
- Automating build, test, and deployment workflows
- Creating reusable workflow components
- Configuring self-hosted runners
- Managing workflow secrets and variables
- Debugging failed workflow runs

## Prerequisites

- GitHub repository with write access
- Understanding of YAML syntax
- For self-hosted runners: server with Docker (optional)

## Workflow File Structure

Workflows are defined in `.github/workflows/` directory:

```yaml
name: CI Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm test
```

## Common Triggers

### Push and Pull Request

```yaml
on:
  push:
    branches: [main]
    paths:
      - 'src/**'
      - 'package.json'
  pull_request:
    branches: [main]
```

### Scheduled Runs

```yaml
on:
  schedule:
    - cron: '0 2 * * *'  # Daily at 2 AM UTC
```

### Manual Dispatch

```yaml
on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Deployment environment'
        required: true
        default: 'staging'
        type: choice
        options:
          - staging
          - production
```

## Job Configuration

### Matrix Builds

```yaml
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18, 20, 22]
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm test
```

### Job Dependencies

```yaml
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: npm run build
      
  test:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - run: npm test
      
  deploy:
    needs: [build, test]
    runs-on: ubuntu-latest
    steps:
      - run: ./deploy.sh
```

### Environment Protection

```yaml
jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: production
      url: https://example.com
    steps:
      - run: ./deploy.sh
```

## Secrets and Variables

### Using Secrets

```yaml
steps:
  - name: Deploy
    env:
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    run: aws s3 sync ./dist s3://my-bucket
```

### Using Variables

```yaml
steps:
  - name: Build
    env:
      API_URL: ${{ vars.API_URL }}
    run: npm run build
```

## Caching Dependencies

```yaml
- uses: actions/cache@v4
  with:
    path: ~/.npm
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
    restore-keys: |
      ${{ runner.os }}-node-
```

## Artifacts

### Upload Artifacts

```yaml
- uses: actions/upload-artifact@v4
  with:
    name: build-output
    path: dist/
    retention-days: 5
```

### Download Artifacts

```yaml
- uses: actions/download-artifact@v4
  with:
    name: build-output
    path: dist/
```

## Docker Builds

```yaml
jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      
      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: user/app:latest
```

## Reusable Workflows

### Define Reusable Workflow

```yaml
# .github/workflows/reusable-deploy.yml
name: Reusable Deploy

on:
  workflow_call:
    inputs:
      environment:
        required: true
        type: string
    secrets:
      deploy_key:
        required: true

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: ${{ inputs.environment }}
    steps:
      - run: echo "Deploying to ${{ inputs.environment }}"
```

### Call Reusable Workflow

```yaml
jobs:
  deploy-staging:
    uses: ./.github/workflows/reusable-deploy.yml
    with:
      environment: staging
    secrets:
      deploy_key: ${{ secrets.STAGING_KEY }}
```

## Self-Hosted Runners

### Register Runner

```bash
# Download runner
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz
tar xzf actions-runner-linux-x64.tar.gz

# Configure
./config.sh --url https://github.com/OWNER/REPO --token TOKEN

# Run
./run.sh
```

### Use Self-Hosted Runner

```yaml
jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
```

## Debugging Workflows

### Enable Debug Logging

Set repository secrets:
- `ACTIONS_RUNNER_DEBUG`: `true`
- `ACTIONS_STEP_DEBUG`: `true`

### Debug Step

```yaml
- name: Debug
  run: |
    echo "GitHub context: ${{ toJson(github) }}"
    echo "Job context: ${{ toJson(job) }}"
```

## Common Issues

### Issue: Workflow Not Triggering
**Problem**: Workflow doesn't run on push/PR
**Solution**: Check branch filters, path filters, and ensure workflow file is on the default branch

### Issue: Permission Denied
**Problem**: Actions can't push or create PRs
**Solution**: Configure `permissions` in workflow or update repository settings

```yaml
permissions:
  contents: write
  pull-requests: write
```

### Issue: Cache Not Restoring
**Problem**: Cache misses despite existing cache
**Solution**: Verify cache key matches exactly, check runner OS

## Best Practices

- Pin action versions to specific commits or tags
- Use caching for dependencies to speed up builds
- Minimize secrets exposure with environment scoping
- Use matrix builds for cross-platform testing
- Implement proper error handling with `continue-on-error`
- Keep workflows DRY with reusable workflows and composite actions

## Related Skills

- [gitlab-ci](../gitlab-ci/) - GitLab CI/CD alternative
- [docker-management](../../containers/docker-management/) - Container builds
- [semantic-versioning](../../release/semantic-versioning/) - Automated releases

© devops-skills · MIT · BagelHole/DevOps-Security-Agent-Skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой