本文へ移動
cccskills
無料GitHub で公開

github-actions-ci

Set up GitHub Actions CI pipeline with test, lint, type-check, and build jobs for a Node.js/TypeScript project. Includes output grouping, error annotations, and job summary patterns.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md2.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

GitHub Actions CI Pipeline

Goal

Set up a comprehensive CI pipeline for a Node.js/TypeScript project with GitHub Actions output integration.

CI Workflow

Create .github/workflows/ci.yml:

name: CI
on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [22]
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: pnpm
      - run: pnpm install --frozen-lockfile
      - run: pnpm ts:check
      - run: pnpm lint
      - run: pnpm test
      - run: pnpm build

  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: pnpm
      - run: pnpm install --frozen-lockfile
      - run: pnpm format:check

Adapt branch names, package manager (pnpm/npm/yarn), and script names to match the project.

Output Grouping

Group related output in CI logs for cleaner display:

function startGroup(label: string): void {
  if (process.env['GITHUB_ACTIONS']) {
    console.error(`::group::${label}`)
  }
}

function endGroup(): void {
  if (process.env['GITHUB_ACTIONS']) {
    console.error('::endgroup::')
  }
}

// Usage:
startGroup(`Processing: ${taskName}`)
await doWork()
endGroup()

Error Annotations

Surface errors as inline annotations on the PR diff:

function annotateError(message: string, file?: string, line?: number): void {
  if (process.env['GITHUB_ACTIONS']) {
    const location = file ? ` file=${file}${line ? `,line=${line}` : ''}` : ''
    console.error(`::error${location}::${message}`)
  }
}

Job Summary

Write a markdown summary after execution:

function writeSummary(markdown: string): void {
  const summaryFile = process.env['GITHUB_STEP_SUMMARY']
  if (summaryFile) {
    fs.appendFileSync(summaryFile, markdown + '\n')
  }
}

Security

Pin third-party action versions by SHA for supply chain security:

- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0

For first-party GitHub actions (actions/*), tags are acceptable.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Add --json flag to CLI commands for machine-readable output on stdout. Generic pattern for any CLI tool, enabling piping to jq and CI/CD integration while keeping human-readable output on stderr.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Add shell completion support via a 'completion' subcommand for bash, zsh, and fish. Generic pattern for any Commander.js CLI, with static and dynamic completion examples.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Add zod schema validation for CLI options and YAML/JSON config files. Generic pattern for runtime validation with type-safe parsing and clear error messages in any Commander.js CLI.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Set up @changesets/cli for semantic versioning, CHANGELOG generation, and npm publishing in a monorepo or single package. Covers init, config, contributor workflow, GitHub Actions release automation, and npm provenance.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Add automatic CI/CD environment detection using ci-info package. Generic pattern for any CLI tool that needs to adapt behavior (prompts, output, integrations) based on whether it's running in CI.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

Polish CLI user experience with @clack/prompts for interactive flows, update-notifier for version awareness, and enhanced Commander.js help text with examples and colors. Generic patterns for any Node.js CLI.

日本語の概要は準備中です。原文の説明を表示しています。

krafteq/infraglue22026年7月8日 更新

krafteq のスキルをすべて見る

このスキルの問題を報告する