0Pricing
DevOps Bootcamp · レッスン

JenkinsfileによるJenkins Pipeline as Code

リポジトリに登録したJenkinsfileでビルド、テスト、デプロイのステージを宣言的に定義し、パイプライン自体をアプリケーションとともにバージョン管理します。

「JenkinsfileによるJenkins Pipeline as Code」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

Pipeline as Code

Jenkins UI でジョブを手作業で設定する代わりに、リポジトリに保存した Jenkinsfile でパイプライン全体を記述します。パイプラインがコードになるため、レビュー、バージョン管理、移植が可能になります。

宣言的パイプラインとスクリプトパイプライン

Jenkins には 2 種類の構文があります。宣言的パイプラインは構造化されていて初心者にも使いやすく、スクリプトパイプラインは完全な Groovy です。ここでは宣言的パイプラインに焦点を当てます。

pipeline ブロック

宣言的な Jenkinsfile はすべて、実行場所を指定する agent と stages を含む pipeline ブロックから始まります。

pipeline {
  agent any
  stages {
    stage('Build') {
      steps { echo 'Building...' }
    }
  }
}

ステージを定義する

各 stage は関連する steps をまとめます。ステージは Jenkins UI では列として表示され、パイプラインの進行状況を視覚的に確認できます。

stages {
  stage('Build') { steps { sh 'make build' } }
  stage('Test')  { steps { sh 'make test' } }
}

シェルステップを実行する

sh ステップは、エージェント上でシェルコマンドを実行します。コードのコンパイル、テストの実行、Docker イメージのビルドなどに使用します。

steps {
  sh 'docker build -t myapp:${BUILD_NUMBER} .'
}

環境変数

environment ブロックは、すべてのステップで使用する変数を定義します。Jenkins は BUILD_NUMBER や GIT_COMMIT などの組み込み変数も提供します。

environment {
  REGISTRY = 'registry.example.com'
  IMAGE    = 'myapp'
}

認証情報のバインディング

シークレットをハードコードしてはいけません。Jenkins の認証情報に保存し、credentials() ヘルパーで取得してください。ログでは値がマスクされます。

environment {
  REG_PASS = credentials('registry-password')
}

Post アクション

post ブロックはステージの完了後に実行され、結果に応じて処理を分岐できます。通知や後片付けに最適です。

post {
  success { echo 'Pipeline succeeded' }
  failure { echo 'Pipeline failed' }
  always  { sh 'docker image prune -f' }
}

並列ステージ

parallel を使って独立した処理を並列実行すると、処理を高速化できます。たとえば、単体テストと統合テストを同時に実行できます。

stage('Tests') {
  parallel {
    stage('Unit') { steps { sh 'make unit' } }
    stage('Integration') { steps { sh 'make int' } }
  }
}

条件付きステージ

when ディレクティブを使うと、条件を満たす場合にだけステージを実行できます。たとえば、main ブランチに対してだけデプロイできます。

stage('Deploy') {
  when { branch 'main' }
  steps { sh './deploy.sh' }
}

マルチブランチパイプライン

Jenkins にリポジトリを指定すると、Jenkinsfile を含むすべてのブランチを検出し、ブランチごとにパイプラインを自動作成します。フィーチャーブランチでも追加設定なしに CI を利用できます。

簡単な確認

宣言的パイプラインの定義はどこに置きますか?

まとめ

これで、パイプラインをコードとして定義できるようになりました。

  • pipeline { agent; stages } が宣言的パイプラインの基本構造です
  • sh ステップでコマンドを実行し、environment と credentials() で設定を管理します
  • post、parallel、when で機能を拡張できます
  • マルチブランチパイプラインにより、すべてのブランチで CI を自動的に利用できます

Jenkinsfile はコードと一緒に管理され、コードとともに進化します。

よくある質問

「JenkinsfileによるJenkins Pipeline as Code」レッスンは無料ですか?

はい。「JenkinsfileによるJenkins Pipeline as Code」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「JenkinsfileによるJenkins Pipeline as Code」で何を学びますか?

リポジトリに登録したJenkinsfileでビルド、テスト、デプロイのステージを宣言的に定義し、パイプライン自体をアプリケーションとともにバージョン管理します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「JenkinsfileによるJenkins Pipeline as Code」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Jenkins入門
  2. JenkinsによるDockerイメージのビルド
  3. Jenkinsによるデプロイの自動化
  4. JenkinsfileによるJenkins Pipeline as Code
← DevOps Bootcampに戻る