Jenkinsユーザードキュメント(配置)
3199 ワード
配置
最も基本的な継続的なパイプラインは、少なくとも3つのフェーズがあります.Jenkinsfile
で定義する必要があります.Build
Test
およびDeploy
.このセクションでは、主に導入フェーズに注目しますが、安定した構築とテストフェーズが導入活動の重要な前提であることに注意してください.Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building'
}
}
stage('Test') {
steps {
echo 'Testing'
}
}
stage('Deploy') {
steps {
echo 'Deploying'
}
}
}
}
スクリプトパイプ(詳細):Jenkinsfile (Scripted Pipeline)
node {
stage('Build') {
echo 'Building'
}
stage('Test') {
echo 'Testing'
}
stage('Deploy') {
echo 'Deploying'
}
}
導入環境の段階として
一般的なモードの1つは、次のコード・セグメントに示すように、「staging」または「production」のような追加の導入環境をキャプチャするために、階層フェーズの数を拡張することです.stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
stage('Deploy - Production') {
steps {
sh './deploy production'
}
}
この例では、私たちの./run-smoke-tests
スクリプトが実行する「スモッグテスト」は、製品環境のパブリケーションを限定または検証するのに十分であると仮定します.この自動的にコードを本番のパイプラインに配置することは、「継続的な導入」の実現と見なすことができます.これは崇高な理想ですが、多くの人にとって、なぜ継続的な導入が現実的ではない可能性があるのかを説明する十分な理由がありますが、継続的な納品によるメリットを享受することができ、Jenkinsパイプラインはこの2つの方法を同時にサポートしやすいです.
手動入力が必要
通常、フェーズ間、特に環境フェーズでは、アプリケーションが本番環境を「促進」するのに十分な状態にあるかどうかを判断するなど、継続する前に手動で入力する必要があります.これはinput
ステップで完了します.次の例では、Sanity checkフェーズは実際に入力をブロックし、進捗状況を確認する人がいない場合は行われません.Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
/* "Build" and "Test" stages omitted */
stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
stage('Sanity check') {
steps {
input "Does the staging environment look ok?"
}
}
stage('Deploy - Production') {
steps {
sh './deploy production'
}
}
}
}
スクリプトパイプ(詳細):Jenkinsfile (Scripted Pipeline)
node {
/* "Build" and "Test" stages omitted */
stage('Deploy - Staging') {
sh './deploy staging'
sh './run-smoke-tests'
}
stage('Sanity check') {
input "Does the staging environment look ok?"
}
stage('Deploy - Production') {
sh './deploy production'
}
}
結論
このガイドでは、JenkinsとJenkinsパイプを使用するための基本的な知識を説明します.Jenkinsは拡張性が高いため、ほとんどの自動化を処理するために変更と構成を行うことができます.Jenkinsが実行できる操作の詳細については、ユーザーマニュアルまたはJenkinsブログを参照して、最新のイベント、チュートリアル、更新について説明します.
下一篇:整理と通知
上一篇:Mavenを使ってJavaアプリケーションを構築する
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building'
}
}
stage('Test') {
steps {
echo 'Testing'
}
}
stage('Deploy') {
steps {
echo 'Deploying'
}
}
}
}
Jenkinsfile (Scripted Pipeline)
node {
stage('Build') {
echo 'Building'
}
stage('Test') {
echo 'Testing'
}
stage('Deploy') {
echo 'Deploying'
}
}
stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
stage('Deploy - Production') {
steps {
sh './deploy production'
}
}
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
/* "Build" and "Test" stages omitted */
stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
stage('Sanity check') {
steps {
input "Does the staging environment look ok?"
}
}
stage('Deploy - Production') {
steps {
sh './deploy production'
}
}
}
}
Jenkinsfile (Scripted Pipeline)
node {
/* "Build" and "Test" stages omitted */
stage('Deploy - Staging') {
sh './deploy staging'
sh './run-smoke-tests'
}
stage('Sanity check') {
input "Does the staging environment look ok?"
}
stage('Deploy - Production') {
sh './deploy production'
}
}