GitHub Actions
GitHub Actions Automation & DevOps CI/CD

GitHub Actions CI/CD ワークフロー YAML ジェネレーター

Node.js、Go、Python、Docker ビルド、ユニットテスト、自動リリースに対応した本番向け GitHub Actions ワークフロー YAML パイプラインを安全かつ迅速に構築します。

100% クライアントサイド
サーバー送信ゼロ
プリセット:
トリガーイベント&ブランチ
有効なトリガー:
ランタイム環境&マトリックス
ビルド・テスト・キャッシュ設定
セキュリティ・シークレット・並列制御
.github/workflows/nodejs-ci.yml 構文検証済み (v4)
name: Node.js CI/CD Pipeline

on:
  push:
    branches:
      - 'main'
      - 'master'
  pull_request:
    branches:
      - 'main'
      - 'master'
  workflow_dispatch:
  release:
    types: [published]

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

permissions:
  contents: write

jobs:
  build-and-test:
    name: NODE Test & Build
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      fail-fast: false
      matrix:
        node-version: ['18.x', '20.x', '22.x']
    steps:
      - name: Checkout code repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Install pnpm package manager
        uses: pnpm/action-setup@v4
        with:
          version: 'latest'

      - name: Set up Node.js runtime environment
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'pnpm'

      - name: Install project dependencies
        run: pnpm install --frozen-lockfile

      - name: Run code linter and style check
        run: pnpm run lint

      - name: Run static typecheck
        run: pnpm run typecheck

      - name: Run automated test suite
        run: pnpm test -- --coverage

      - name: Compile and build production bundle
        run: pnpm run build

      - name: Upload build artifact
        uses: actions/upload-artifact@v4
        with:
          name: node-js-ci-cd-pipeline-artifact
          path: dist/
          retention-days: 7

      - name: Create GitHub Release on tag
        if: startsWith(github.ref, 'refs/tags/')
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true
          files: dist/**
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
対象ランタイム
NODE • ubuntu
パイプラインステップ数
9 ステップ • ~5.2分 実行
セキュリティスコア
100/100 • 最小権限原則

ゼロレイテンシ・ローカル合成

リポジトリ構成やシークレットを外部サーバーへ一切送信せず、ブラウザ内メモリで堅牢な GitHub Actions ワークフローを瞬時に生成。

エンタープライズ級セキュリティ保護

最小権限 GITHUB_TOKEN、同時実行キャンセルの制御、タイムアウト上限、サプライチェーン攻撃を防ぐアクションバージョン固定を自動付与。

マルチ言語&マトリックス並列検証

Node.js、Python、Go、Rust、Docker、GitHub Pages に最適化された依存関係キャッシュ付きの高速 CI/CD テンプレートを提供。

技術リファレンス&アーキテクチャガイド

GitHub Actions CI/CD ワークフロー YAML 生成ガイド — リファレンスガイド

Node.js、Go、Python、Docker ビルド、ユニットテスト、自動リリースに対応した本番向け GitHub Actions ワークフロー YAML パイプラインを安全かつ迅速に構築します。

主要パラメータ&設定項目

namestring

GitHub Actions の実行タブ、ステータスバッジ、プルリクエストのチェック一覧に表示されるワークフロー識別名。

初期値: CI / CD Pipeline
onstring | object

push、pull_request、定期実行 cron、手動実行 workflow_dispatch など、パイプラインをトリガーする Webhook イベントを定義。

初期値: push, pull_request
runs-onstring | array

ジョブを実行する仮想マシン OS(ubuntu-latest、macos-latest、windows-latest)やセルフホストランナーのラベルを指定。

初期値: ubuntu-latest
permissionsobject | string

一時的な GITHUB_TOKEN に付与するセキュリティ権限(contents: read、packages: write 等)を最小権限の原則に基づいて制御。

初期値: contents: read
concurrencyobject | string

同一ブランチや PR で重複するジョブの並行実行を制御。cancel-in-progress で古いビルドを中断しランナー枠を節約。

初期値: group: ${{ github.ref }}, cancel-in-progress: true

プロの活用テクニック&推奨設定

サードパーティ Actions はコミット SHA で固定する

サプライチェーン攻撃を防ぐため、可変なメジャーバージョンタグではなく、40文字の完全なコミット SHA(例:actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1)でアクションを指定してください。

連続コミット時に実行中ワークフローを自動キャンセルする

concurrency グループに 'cancel-in-progress: true' を設定することで、新しいコミットがプッシュされた際に古い不要なテスト実行を即座に破棄できます。

ジョブ単位で最小権限(Least Privilege)を徹底する

トップレベルで 'permissions: {}' を宣言して全権限をデフォルト拒否し、各ジョブで必要なスコープ(contents: read や pull-requests: write)のみを個別に許可してください。

セットアップアクション内蔵のキャッシュ機能を利用する

手動で actions/cache を組む代わりに、setup-node の 'cache: npm' や setup-python の 'cache: pip' など公式アクションの統合キャッシュ機能を優先活用しましょう。

よくあるトラブルと解決策

シークレットの欠落または空の環境変数により exit code 1 で終了する

リポジトリの [Settings] > [Secrets and variables] > [Actions] を確認してください。フォーク元リポジトリからの PR では、セキュリティ上の理由からデフォルトでシークレットが参照されません。

リリース作成やパッケージ公開時に HTTP 403(Resource not accessible by integration)が発生する

該当ジョブに明示的な書き込み権限を追加してください(例:'permissions: { contents: write, packages: write }')。最新の GitHub デフォルト設定では GITHUB_TOKEN は読み取り専用です。

cron スケジュールやリリース作成イベントでワークフローが自動起動しない

ワークフロー YAML ファイルがリポジトリのデフォルトブランチ(main または master)にコミットされているか確認してください。GitHub は cron トリガーをデフォルトブランチでのみ評価します。

よくある質問 (FAQ)

GitHub Actions の jobs と steps の本質的な違いは何ですか?▼

job は独立した仮想ランナー上でデフォルト並列実行されます(needs で順序制御可能)。各 step は単一ランナーの同一ファイルシステムおよび環境変数空間内で上から順に直列実行されます。

なぜアクションの指定にバージョンタグではなくコミット SHA が推奨されるのですか?▼

@v4 などのタグは作成者側で書き換え可能な可変参照です。万一上流アカウントが侵害された場合、悪意あるコードが注入されるリスクがあります。SHA 固定により検証済みコードの再現性が保証されます。

手動実行トリガー(workflow_dispatch)はどのように動作しますか?▼

on に 'workflow_dispatch:' を記述すると GitHub の UI に「Run workflow」ボタンが表示されます。文字列、真偽値、ドロップダウン選択肢などの入力パラメータを受け取り、パイプライン内で利用可能です。

ビルド時間とランナー消費分数を効率的に節約するコツは?▼

依存関係キャッシュの有効化、cancel-in-progress による旧ビルド破棄、paths / paths-ignore フィルタによる不要トリガー除外、重い処理のマトリックス並列化を組み合わせることで大幅に削減できます。

関連するおすすめ開発ツール

すべてのツール →
Linux Logrotate 設定ファイル生成ツール (保持期間 & 圧縮設定ガイド)開発ツール

日次・週次ローテーション、gzip圧縮、dateext、ファイルサイズ制限、postrotateスクリプトを含む本番環境用 /etc/logrotate.d/ 設定ファイルを安全に生成。

ツールを開く→
Ubuntu Netplan ネットワーク設定 YAML 生成ツール開発ツール

Ubuntu 20.04/22.04/24.04 向けの Netplan YAML 設定(静的IP、DHCP、DNSネームサーバー、ゲートウェイルート、仮想ブリッジ、BOND構成)をブラウザ上で安全に生成。

ツールを開く→
SQL DDL から Python SQLAlchemy 2.0 モデル生成ツール開発ツール

SQL の CREATE TABLE 文を、最新の Mapped および mapped_column 型注釈を備えた堅牢な Python SQLAlchemy 2.0 DeclarativeBase モデルへ即座に変換します。

ツールを開く→
SQL DDLからGolang GORM構造体モデル生成ツール開発ツール

SQLのCREATE TABLEスキーマからGORMタグ、JSONタグ、適切なGo型マッピングを備えたGolang構造体(struct)モデルを瞬時に自動生成します。

ツールを開く→
SQL DDLからSequelize TypeScriptモデルへの変換ジェネレーター開発ツール

SQLのCREATE TABLE文からSequelizeのTypeScriptモデル、DataTypes定義、CreationOptional属性、およびModel.init初期化コードを生成するための包括的開発者リファレンス。

ツールを開く→
Json To Elixir Ecto開発ツール

生のJSONデータからElixir Ectoスキーマ、マイグレーション、Changeset、Dialyzer型仕様(typespec)を自動生成するためのアーキテクチャ設計仕様書。

ツールを開く→