2017-08-17 7 views
1
stage('Checkout repo'){ 
    git branch: 'mybranch', 
    credentialsId: '6b83e39e-1c8c-44c2-9165-b1f5a857f6cb', 
    url: '[email protected]:myproject.git'} 

stage('run tests'){ 
    sh 'mvn test' 
} 

stage('build artefact'){ 
    sh 'mvn clean package' 
} 

新しいコミットがある場合にテストを実行して新しいアーティファクトを作成する方法? トリガーなしJenkinsパイプライン:新しいコミットがある場合にのみ新しいアーティファクトを作成する方法

+0

どのようにパイプラインを実行させていますか? – 8bittree

+0

ちょうど私はジェンキンスを学んでおり、インストラクターはその方法を見つけるように頼んでいます –

+1

パイプラインは魔法のように実行できません。これは、手動で開始するか、ジョブ構成ページのビルドトリガーの1つでトリガーする必要があります。要件が何であるかは明確ではありません。それを拡大するために質問を編集し、何が許されていないか、何が許可されていないのかを検討するべきです。 – 8bittree

答えて

0

Jenkinsジョブを自動的にトリガーする方法は3つあります。

  1. それはあなたの仕事をトリガーするようにあなたのパイプラインの仕事に変更があるたびにSCM pollingを使用することができます。

    Poll SCMは、パイプラインジョブ構成の〜ビルドトリガーセクションで有効にすることができます。

    enter image description here

  2. あなたのGitHubリポジトリに変更があった場合に自動的にジョブをトリガするWebhooksを使用することができます。

    documentationWebhookの実装に従います。

  3. リポジトリにコミットがあるときにpost-commitフックを使用してジョブをトリガすることができます。

    リポジトリの.git/hooksディレクトリの下にpost-commitというファイルを作成し、次のスクリプトを追加します。

    #!/bin/bash curl --user 'user:pass' -X POST "http://server.org.com/jenkins/job/JOB-NAME/build" --data token=mytoken1 --data delay=0sec

1

あなたはGit Pluginから環境変数を使用して条件を作成することができます。

if (env.GIT_COMMIT != env.GIT_PREVIOUS_SUCCESSFUL_COMMIT) { 
    stage('run tests'){ 
    sh 'mvn test' 
    } 
    stage('build artefact'){ 
    sh 'mvn clean package' 
    } 
} 
  • GIT_COMMIT - 現在のコミットのSHA
  • GIT_PREVIOUS_SUCCESSFUL_COMMIT - SHI 以前に正常にビルドされたコミットを同じブランチからコミットしました。
関連する問題