ジェンキンスパイプラインのワークフローの自動化の展開

ジェンキンス

ジェンキンスは、Javaで書かれたオープンソースの継続的インテグレーションツールです。オラクルとの紛争の後、ハドソンプロジェクトから項目を刻印。

ジェンキンスは、ソフトウェア開発サービスの継続的な統合を提供します。これは、サーブレットコンテナ(例えば、Apache Tomcatの)で実行されます。それは、あなたは、Apache AntとのApache Mavenプロジェクト、およびシェルスクリプトとWindowsのいずれかに基づいてバッチコマンドを実行することができます(AccuRevのSCM、CVS、Subversionの、Gitは、PERFORCEの、ClearcaseのとRTCを含む)ソフトウェア構成管理(SCM)ツールをサポートしています。ジェンキンスさんは、メインの開発者川口農業の紹介です。ジェンキンスは、MITライセンスのフリーソフトウェアの下でリリースされます。

これは、構築するために、様々な手段によってトリガすることができます。例えばバージョン管理システムに提出トリガされ、他が完了したとき、あなたはcronに似たスケジューリングメカニズムによって、特定のURLを要求することができます構築することができます。

パイプラインを作成します。

基本的な環境が良いビルドした後、のは、個人的に感じてワークフローを設定してみましょう

次のようにワークフローがジェンキンス、ユーザによって定義されたパイプライン走行挙動、Jenkinsfile定義ファイルに格納されたコンテンツパイプラインと呼ばれ、gitリポジトリのルートディレクトリにファイルを格納している、一般的なプロセスであります

  1. ユーザーはgitのにコードを提出しました
  2. ジェンキンスは、Gitリポジトリから最新のコードを引っ張ります
  3. ルートディレクトリにJenkinsfileファイルを読み込み、ファイルに定義されたタスクの実行が続きます

以下は、特定の構成手順であります

Jenkinsfileを書きます

    pipeline {
        agent {
            label 'master' /* 执行节点 */
        }
        stages {
            stage('Build') {
                steps {
                    echo 'Building'
                }
            }
            stage('Test') {
                steps {
                    echo 'Testing'
                }
            }
            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 {
                    echo './deploy production'
                }
            }
        }复制代码
        post {
            always {
                echo 'One way or another, I have finished'
                deleteDir() /* clean up our workspace */
            }
            success {
                echo 'I succeeeded!'
            }
            unstable {
                echo 'I am unstable :/'
            }
            failure {
                echo 'I failed :('
            }
            changed {
                echo 'Things were different before...'
            }
        }
    }
    复制代码

上記は、次の主要な概念を持っている基本的なJenkinsfileテンプレートであり、

  • agent-上記の構成を覚えて、そのマシン上でタスクを実行指定Node満たされたときに、Label2つのならば、そしてlabel試合が上だったで、Node実行
  • stage-ワークフローの大きな工程、これらシリアル手順、例えばbuildtestdeploy
  • steps-小さなステップで、同じステージを説明stageではstepsパラレル
  • sh-実行shellコマンドを
  • input-あなたは、手動で[OK]をクリックする必要があり、Pipeline非常に多くの場合、人々はいくつかの確認を展開する必要があるため、一般的に配備領域で使用される、後続のリンクを入力します
  • post- すべてのパイプライン実行が完了したら、それは一般的に、いくつかのクリーンアップ作業を行うだけでなく、パイプラインの実施状況を判断することができ、ポストへのリンクをリンクします

これらを理解した後、あなたはJenkinsfileは非常に簡単なものである書き込みができます。まあ、今のルートディレクトリにJenkinsfile、gitリポジトリにコピーして保存され、パイプライン機能、SHエコーに上記のコードをテストします

パイプラインを作成します。

戻るジェンキンスWebページに、パイプラインを追加

あなたがするたび場合はgit commitパイプラインは、二つの方法があるときに自動的に実行するためには、人はジェンキンスは、Gitは、分をチェックあたりのgitリポジトリ更新されていないをポーリングできるようにすることです、次のコンフィギュレーション

もう一つの方法は、原則的にはGitが一度提出方法ですが、それはスクリプトでフックをトリガーする、フックを提供gitのを使用することで、スクリプトジェンキンスは、命令実行パイプラインに送られ、この方法は、よりエレガントであるが、より多くのニーズに応じて行われなければもう少し、このアプローチのデモンストレーションがない、興味のある学生は、自分の顔を学ぶことができます。

最後に、我々はクレジットは、設定一貫して上記のマスタークレジットセットがノードに言われた、アドレスのgitを設定する必要があります

一度あなたのgitリポジトリが新しい投稿を受信すると、それはパイプラインの実行をトリガーする、セットアップ、この数字は、以下の状態Jenkinsfile上記の例を実行している、あなたは正気は、この手順を確認し実行すると、手動でする必要が見ることができますバック操作を実行するかどうかをトリガします。

他の

プロジェクトアドレスします。https://github.com/changdaye/jenkins-docker-demo/

グラフィカルなプラグプレゼンテーションのステップ:https://wiki.jenkins.io/display/JENKINS/Pipeline+Stage+View+Plugin

あなたはあなたを助けるために記事を感じた場合、あなたは励まし多色[色の]マイクロチャンネル公衆数に焦点を当てることができます

おすすめ

転載: juejin.im/post/5da5221b5188250b16727148