連続的な供給の基本的な考え方は、バージョン管理システムへの各変更は、戦闘環境に標準と完全に自動化された方法を取得することを可能にするパイプライン(展開パイプライン)を、構築することです。
最初の部分のためのジェンキンスさんへの配備例のパイプラインの建設:
1.パイプラインプロジェクトの作成
1.1。 「アイテムの作成」-名前を入力し、パイプライン構成を選択します
1.2。 「GitHubプロジェクト」フィールドにリポジトリのアドレスを入力します
1.3。 「変更についてSCMに問い合わせる」チェックボックスを選択し、リポジトリを毎分チェックするようにスケジュールを設定します「* * * * *」
1.4。 「パイプラインスクリプト」フィールドにプロジェクトの手順を入力します
node{ stage 'Deploy' build 'Deploy_CHECK' stage 'Sonar_analysis' build job: 'Sonar_analysis', parameters: [string(name: 'STAND', value: 'CHECK')] stage 'Unit tests' build job: 'Unit_tests', parameters: [string(name: 'STAND', value: 'CHECK')] stage 'Deploy DEV' build 'Deploy_DEV' stage 'Unit tests' build job: 'Unit_tests', parameters: [string(name: 'STAND', value: 'DEV')] stage 'Acceptance_test' build 'Acceptance_test' stage 'Smoke_tests' build job: 'Smoke_tests', parameters: [string(name: '', value: 'DEV')] }
2.リポジトリに変更を加えます
3. 1分以内に、パイプラインはリポジトリの新しい変更を確認し、チェックを開始します
図1 CHECKおよびDEV環境でチェックを実行する例。
![画像](https://habrastorage.org/getpro/habr/post_images/0ee/012/a18/0ee012a1830698ee5de2b8c68a96a60a.jpg)
図2。 検証手順の1つの結果。
![画像](https://habrastorage.org/getpro/habr/post_images/5fc/af4/35a/5fcaf435a3ab8f5fefef229281139db1.jpg)
図3 作業のステップの1つでのエラー検出
![画像](https://habrastorage.org/getpro/habr/post_images/0d3/416/335/0d3416335f23453d98525cacec8d70bb.jpg)
Jenkinsで展開パイプラインを構築する2番目の部分の例:
1.パイプラインプロジェクトの作成
1.1。 「アイテムの作成」-名前を入力し、パイプライン構成を選択します
1.2。 「GitHubプロジェクト」フィールドにリポジトリのアドレスを入力します
1.3。 「変更についてSCMに問い合わせる」チェックボックスを選択し、リポジトリを毎分チェックするようにスケジュールを設定します「* * * * *」
1.4。 「パイプラインスクリプト」フィールドにプロジェクトの手順を入力します
node{ stage 'Deploy QA' build 'Deploy_QA' stage 'Compliance tests' build job: 'chef-compliance', parameters: [string(name: 'STAND', value: 'QA')] stage 'Functional tests' build job: 'Tempest', parameters: [string(name: 'STAND', value: 'QA')] stage 'Performance tests' build 'Rally' stage 'Deploy PROD' build 'Deploy_PROD' stage 'Smoke tests PROD' build 'Smoke_tests_PROD' }
2.マージリクエストが正常に閉じられた場合、
2.1。 開発ブランチをリリース2.2としてトリミングします。 パイプラインはリリース*ブランチの変更を確認します
2.3。 パイプラインはチェックから始まります
図4 QAおよびPRODUCTION環境のパイプライン実行プロセス
![画像](https://habrastorage.org/getpro/habr/post_images/a65/422/41f/a6542241f54c886020084adb5a0b9ec0.jpg)
図5 QAおよびPRODUCTION環境でのテストの展開と実行による成功したパイプラインの結果
![画像](https://habrastorage.org/getpro/habr/post_images/f0a/b75/6ff/f0ab756ff2215ec118ff02df08395280.jpg)
図6 QAおよびPRODUCTION環境でのテストの展開と実行で失敗したパイプラインの結果
![画像](https://habrastorage.org/getpro/habr/post_images/3e6/6bb/6ee/3e66bb6eecd42775863bd74bad43fa3e.jpg)
3.マージ要求が失敗して閉じられた場合、
3.1。 変更の影響を受ける開発者にエラー通知が送信されます。