CI/CDパイプライン面接質問:GitHub Actions、GitLab CI、Jenkins 2026年版
CI/CDパイプライン面接質問の準備ガイド。GitHub Actions、GitLab CI、Jenkinsの実践的なコード例、パイプライン設定パターン、2026年のセキュリティベストプラクティスを解説します。

CI/CDパイプラインの面接質問は、2026年のDevOps採用ラウンドで最も頻出するトピックです。GitHub Actionsは現在1日あたり7,100万件以上のジョブを処理しており、2026年6月には並列ステップ実行機能をリリースしました。GitLab CIはバージョン19に到達しネイティブのSecrets Managerを搭載、Jenkinsは依然として28%の採用率を維持しています。面接官は候補者に対し、これら3つのプラットフォームすべてにおける実践的な習熟度を示すことを期待しています。
CI/CD面接の質問は主に3つのカテゴリに分類されます。パイプライン設計(ステージとジョブの構造化方法)、セキュリティ(シークレット管理、サプライチェーンの強化)、トラブルシューティング(失敗したビルドのデバッグ、遅いパイプラインの最適化)です。少なくとも1つはライブでパイプライン設定を行う質問が出題されると考えてください。
GitHub Actionsのワークフロー構造とトリガー
GitHub Actionsは、ワークフロー、ジョブ、ステップを中心に自動化を構成します。ワークフローは.github/workflows/に保存されるYAMLファイルで、自動化の実行タイミングと方法を定義します。各ワークフローは1つ以上のジョブを含み、各ジョブは別々のランナー上で実行されます。
面接でよく聞かれる質問は、onトリガー、ジョブの依存関係、needsキーワードの関係を説明することです。
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run lint
test:
needs: lint # waits for lint to pass
runs-on: ubuntu-latest
strategy:
matrix:
node: [20, 22] # runs tests on both versions
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm
- run: npm ci
- run: npm test
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: production # requires approval
steps:
- uses: actions/checkout@v4
- run: ./deploy.shこのワークフローは3つの重要な概念を示しています。needsキーワードはジョブ間の依存関係グラフを作成し、matrix戦略はNode.jsバージョン間での並列テストを可能にし、environmentキーワードは手動承認の背後にデプロイメントをゲートします。
GitHub Actionsの並列ステップ
GitHub Actionsは2026年6月25日に並列ステップ実行をリリースし、最も要望の多かった機能の1つに対応しました。以前は、ジョブ内のすべてのステップが順次実行されていました。この新機能では、単一のジョブ内で同時実行を可能にする4つのキーワードが導入されています。
並列ジョブは、分離されたファイルシステムを持つ別々のランナーを使用します。並列ステップは、単一のランナー、チェックアウト、環境、ワークスペースを共有します。面接官はこの違いを理解しているかテストします。キャッシュ、アーティファクト共有、リソース使用率に影響するためです。
# .github/workflows/parallel-steps.yml
name: Build with Parallel Steps
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
# Run lint and typecheck in parallel
- name: lint
run: npm run lint
background: true
- name: typecheck
run: npm run typecheck
background: true
- wait-all: # wait for both to complete
# Or use the parallel shorthand
- parallel:
- name: build-frontend
run: npm run build:frontend
- name: build-backend
run: npm run build:backend
- run: npm run deploybackground: trueキーワードはステップを非同期で開始し、即座に次のステップに進みます。wait-allキーワードは、先行するすべてのバックグラウンドステップが完了するまで実行を一時停止します。parallelキーワードは、複数のステップを同時に実行し、すべてが完了するまで待機してから続行する省略形を提供します。
追加で2つのキーワードがあります。waitは特定の名前付きバックグラウンドステップをターゲットにし、cancelは不要になったバックグラウンドステップを正常に終了します(長時間実行されるサービスの停止に有用です)。
GitLab CIのパイプライン設定とステージ
GitLab CIはリポジトリルートに.gitlab-ci.ymlファイルを使用します。ジョブがデフォルトで独立して実行されるGitHub Actionsとは異なり、GitLab CIはジョブをステージに編成し、ステージは順次実行されますが、同じステージ内のジョブは並列に実行されます。
面接官は、GitHub ActionsワークフローをGitLab CIパイプラインに変換すること、またはその逆を候補者に求めることがよくあります。
# .gitlab-ci.yml
stages:
- validate
- test
- deploy
variables:
NODE_VERSION: "22"
lint:
stage: validate
image: node:${NODE_VERSION}
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
script:
- npm ci
- npm run lint
unit-tests:
stage: test
image: node:${NODE_VERSION}
parallel:
matrix:
- NODE_VERSION: ["20", "22"]
script:
- npm ci
- npm test
artifacts:
reports:
junit: coverage/junit.xml
expire_in: 7 days
deploy-production:
stage: deploy
image: alpine:latest
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: manual # manual gate
environment:
name: production
url: https://app.example.com
script:
- ./deploy.shGitHub Actionsとの主な違いは、ステージがグローバルに実行順序を強制すること、parallel:matrixキーワードがマトリクスビルドを処理すること、artifacts:reports:junitがテスト結果をマージリクエストビューに直接統合することです。
GitLab 19.0(2026年5月)ではオープンベータでSecrets Managerが導入され、HashiCorp Vaultなどの外部サービスなしでネイティブのシークレットストレージを提供しています。GitLab 19.2(2026年7月)ではスケジュールされたパイプライン実行ポリシーが一般提供となり、単一のポリシー定義から複数のプロジェクトにわたってコンプライアンススキャンや依存関係チェックを固定の頻度で実行できるようになりました。
DevOpsの面接対策はできていますか?
インタラクティブなシミュレーター、flashcards、技術テストで練習しましょう。
JenkinsのDeclarativeパイプライン構文
Jenkinsはリポジトリルートに保存されたJenkinsfileを使用します。2026年のデフォルトとして推奨されるDeclarativeパイプライン構文は、構造化されたエラーハンドリングと明確なステージベースのレイアウトを提供します。
面接で頻出する質問は、DeclarativeパイプラインとScriptedパイプラインの違い、そしてそれぞれをいつ使用するかを説明することです。
// Jenkinsfile
pipeline {
agent any
tools {
nodejs 'node-22' // configured in Jenkins Global Tool
}
environment {
CI = 'true'
DEPLOY_ENV = credentials('deploy-env-secret')
}
stages {
stage('Install') {
steps {
sh 'npm ci'
}
}
stage('Lint & Test') {
parallel { // parallel execution
stage('Lint') {
steps {
sh 'npm run lint'
}
}
stage('Test') {
steps {
sh 'npm test'
}
post {
always {
junit 'coverage/junit.xml'
}
}
}
}
}
stage('Deploy') {
when {
branch 'main'
}
input {
message 'Deploy to production?'
}
steps {
sh './deploy.sh'
}
}
}
post {
failure {
mail to: 'team@example.com',
subject: "Build failed: ${env.JOB_NAME}",
body: "Check ${env.BUILD_URL}"
}
}
}Declarativeパイプラインは、必須のpipeline、agent、stagesブロックを通じて構造を強制します。ステージ内のparallelディレクティブは、lintとtestを同時に実行します。inputディレクティブは、GitHub Actions環境やGitLabの手動ゲートと同様に、手動承認のために実行を一時停止します。Jenkinsは2026年1月時点でJava 21を必要とするため、パイプライン環境はこのランタイム依存関係を考慮する必要があります。
Jenkins 2.574(2026年7月)および2.577(2026年8月)は、JUnit、Mailer、Matrix Authorization、Bouncycastle API、JavaMail APIを含むいくつかのプラグインをデフォルトのWARファイルから削除しました。アップデートセンターにアクセスできないインスタンスは、アップグレード前にこれらのプラグインを手動でインストールする必要があります。JUnitプラグインの削除は、上記のjunitステップを使用するパイプラインに特に影響します。
CI/CDプラットフォーム間のシークレット管理
すべてのCI/CD面接にはシークレット管理に関する質問が含まれます。各プラットフォームは資格情報の処理方法が異なり、セキュリティへの影響を理解することが重要です。
GitHub Actionsはリポジトリ、環境、または組織レベルでシークレットを保存します。シークレットはログで自動的にマスクされますが、現在のスコープモデルには制限があります。2026年セキュリティロードマップでは、過度に広範なアクセスのリスクに対処するため、資格情報を明示的な実行コンテキストにバインドするスコープ付きシークレットが導入されます。
GitLab CIは保護ルール付きのCI/CD変数を提供します。保護された変数は、保護されたブランチまたはタグで実行されるパイプラインにのみ注入されます。GitLab 19.0でSecrets Managerが導入され、チームは外部のvaultなしでネイティブにシークレットを保存して参照できます。シークレットはプロジェクトまたはグループにスコープされ、明示的に要求するジョブのみがアクセスできます。
Jenkinsは複数の資格情報タイプ(ユーザー名/パスワード、SSHキー、シークレットテキスト、証明書)を持つCredentialsプラグインを使用します。Declarativeパイプラインのcredentials()ヘルパーはシークレットを環境変数にバインドし、フォルダーレベルの資格情報は特定のプロジェクトへのアクセスをスコープします。
面接での重要な回答は、パイプラインファイルにシークレットをハードコードしないこと、常にプラットフォームのネイティブシークレット管理を使用すること、資格情報を定期的にローテーションすること、長期間有効なAPIキーよりも短期間のトークンを優先することです。
パイプラインの最適化とキャッシュ戦略
遅いパイプラインは開発者の生産性に直接影響します。面接官は、CI/CDシステムのパフォーマンスボトルネックを診断して修正できるかをテストします。
3つのプラットフォームすべてに適用される3つの普遍的な最適化手法があります。
依存関係のキャッシュは、毎回の実行でパッケージを再ダウンロードすることを回避します。GitHub Actionsはactions/cacheまたはセットアップアクションの組み込みキャッシュサポートを使用します。GitLab CIはキー戦略を持つcacheを使用します。Jenkinsはワークスペースの永続性またはstash/unstashコマンドに依存します。
並列実行は作業を複数のランナーに分割します。GitHub Actionsは現在、並列ジョブ(matrix戦略)と並列ステップ(background/parallelキーワード)の両方をサポートしています。GitLab CIはparallel:matrixを使用し、Jenkinsはparallelディレクティブを使用します。適切な分割粒度はプロジェクトによって異なります。並列ジョブが多すぎるとランナーの起動時間が無駄になり、少なすぎると容量が未使用のままになります。
条件付き実行は不要なステージをスキップします。3つのプラットフォームすべてがこれをサポートしています。GitHub Actionsはif式、GitLab CIはrules、Jenkinsはwhenディレクティブを使用します。適切に設計されたパイプラインは、フィーチャーブランチでデプロイメントステージをスキップし、lint限定の変更でフルテストスイートのトリガーをスキップします。
CI/CDパイプラインのセキュリティとサプライチェーン保護
CI/CDシステムを標的としたサプライチェーン攻撃は2025年に大幅に増加し、tj-actions/changed-filesやその他の人気のあるGitHub Actionsに影響を与えるインシデントがありました。面接の質問は現在、候補者の強化戦略について定期的に調査しています。
タグハイジャック攻撃を防ぐため、タグではなく特定のコミットSHAにアクションバージョンを固定します。
# .github/workflows/secure.yml
steps:
# Vulnerable: tag can be moved to malicious commit
- uses: actions/checkout@v4
# Secure: pinned to exact commit SHA
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683GitLab CIはSLSA Level 1認証を持つCI/CDコンポーネント(GitLab 18.1以降で利用可能)を通じてサプライチェーンの懸念に対処し、再利用可能なコンポーネントからパイプラインを組み立てる際により明確な出所を提供します。イミュータブルコンテナタグ(GitLab 18.2)は、公開後のイメージ置換を防止します。
Jenkinsの場合、Shared Libraryメカニズムは、ブランチ保護、コードレビュー要件、署名付きコミットを持つ専用リポジトリを使用する必要があります。欧州委員会はYesWeHackを通じてJenkins Bug Bounty Programを開始し、エンタープライズサプライチェーンにおけるプラットフォームの重要な役割を反映しています。
面接準備のためのクロスプラットフォーム比較
| 機能 | GitHub Actions | GitLab CI | Jenkins |
|---|---|---|---|
| 設定ファイル | .github/workflows/*.yml | .gitlab-ci.yml | Jenkinsfile |
| 実行モデル | 並列ステップ付きジョブベース | ステージベース(順次ステージ) | ステージベース(柔軟) |
| ランナーホスティング | GitHubホステッド + セルフホステッド | GitLab.com共有 + セルフホステッド | セルフホステッドのみ |
| シークレットストレージ | リポジトリ/組織/環境シークレット | Secrets Manager + CI/CD変数 | Credentialsプラグイン |
| マトリクスビルド | strategy.matrix | parallel:matrix | matrix(プラグイン) |
| 手動ゲート | environment + 必須レビュアー | when: manual | inputディレクティブ |
| マーケットプレイス | マーケットプレイスに20,000以上のActions | CI/CDコンポーネントカタログ | 1,800以上のプラグイン |
| AI機能 | Copilot for Actions | Duo CI Expert Agent | コミュニティプラグイン |
| 価格設定 | パブリックリポジトリは無料、プライベートは分単位 | 400 CI/CD分無料、その後段階制 | 無料(オープンソース)、セルフマネージド |
この比較表は、面接で最も一般的にテストされる違いをカバーしています。フォローアップの質問は通常、「新しいプロジェクトにどのプラットフォームを選択し、その理由は何ですか?」と尋ねます。回答は、既存のツール、チームサイズ、コンプライアンス要件、組織がマネージドインフラストラクチャ(GitHub/GitLab)を好むか完全な制御(Jenkins)を好むかによって異なります。
情報源
- Actions steps can now be run in parallel(GitHub Changelog、2026年6月)
- GitLab 19.0 release notes(GitLab Docs、2026年5月)
- GitLab 19.2 release notes(GitLab Docs、2026年7月)
- Jenkins Changelog(Jenkins.io、2026年8月)
- GitHub Actions 2026 Security Roadmap(GitHub Blog)
これらの質問をCI/CDの基礎とGitHub Actions面接モジュールで実践的に練習するか、GitLab CIとJenkins固有の質問を探索してください。CI/CD以外の幅広いDevOps準備については、DevOps面接の必須質問ガイドがトピックの全範囲をカバーしています。
今すぐ練習を始めましょう!
面接シミュレーターと技術テストで知識をテストしましょう。
CI/CDパイプライン面接のポイント
- GitHub Actionsの並列ステップ(
background、wait-all、parallel)は2026年6月にリリースされ、ランナー、チェックアウト、ワークスペースを共有しながら単一のジョブ内で同時実行を可能にします - GitLab 19.xはネイティブSecrets Manager(オープンベータ、2026年5月)を導入し、スケジュールされたパイプライン実行ポリシーを一般提供(2026年7月)にして、外部ツールへの依存を軽減しました
- Jenkins 2.574以降はJUnitやMailerを含むコアプラグインをWARファイルからアンバンドルし、アップデートセンターにアクセスできないインスタンスでは明示的なインストールが必要です
- シークレット管理は3つのプラットフォームすべてで最も一般的にテストされるセキュリティトピックです。スコープ付きシークレット、保護された変数、資格情報ローテーション戦略の知識を示してください
- キャッシュ、並列化、条件付き実行によるパイプライン最適化は普遍的に適用され、面接官に実践的な本番経験を示します
- プラットフォームごとに少なくとも1つの動作するパイプライン設定を準備し、おもちゃの例ではなく実世界のパターンに焦点を当ててください
今すぐ練習を始めましょう!
面接シミュレーターと技術テストで知識をテストしましょう。
DevOps のバグを見つけられますか
実際のコード、隠れたバグ、1日1回。アカウントなしで試せます。

執筆
Anthony Fillion-MailletSharpSkill 創業者
10 年以上フルスタック開発に携わっています。SharpSkill を運営し、ここで公開される内容に責任を負っています。
2026年8月24日 更新
タグ
共有
関連記事

ArgoCD GitOps 完全ガイド 2026年版:Kubernetes 継続的デプロイメントと技術面接対策
ArgoCD 3.4 と GitOps による Kubernetes 継続的デプロイメントを解説。Application CRD、Sync Wave、マルチクラスター管理、Flux 比較、面接質問を網羅。

Terraform面接対策完全ガイド2026:Infrastructure as Codeの必須知識
Terraform面接で頻出する質問を網羅的に解説します。ステート管理、モジュール設計、CI/CDパイプラインまで、IaC面接の合格に必要な知識を実践的なコード例とともに紹介します。

Kubernetes面接対策:Pod、Service、Deploymentの仕組みと実践的な質問解説
Kubernetesの3大構成要素であるPod、Service、Deploymentを本番レベルのYAMLマニフェストとともに解説。ネットワーキングの内部動作、スケーリング戦略、面接頻出の質問と回答を網羅します。