Jenkinsには2つの仕事があります。
build master
-これはコードをビルドし、アーティファクトを作成しますdeploy master
-これはアーティファクトをデプロイします現在、deploy master
には、「最新の成功したビルド」を使用した「別のプロジェクトからの成果物のコピー」ビルドステップがあります。
毎回deploy master
ジョブの構成を変更せずにデプロイするときに特定のビルドを選択できるように、このステップを「最新の正常なビルド」から「ビルドパラメーターで指定された」に変更したい。
まず、「ビルドパラメーターで指定」に変更しました。
次に、「このプロジェクトはパラメーター化されています」の横のボックスをチェックし、BUILD_SELECTOR
の文字列パラメーターを追加しました。
次に、ビルドを選択し、47
ジョブからのビルド番号である入力build master
を入力しました。
さらに、APIコールを試しました
$.ajax({
type: 'POST',
url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});
両方の場合、次の出力で失敗しました。
Started by user styfle
[EnvInject] - Loading node environment variables.
Building in workspace C:\Jenkins\jobs\deploy master\workspace
ERROR: Unable to find a build for artifact copy from: build master
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE
デプロイ時にビルド番号(またはその他の識別子)を指定できるように、これを適切に構成するにはどうすればよいですか?
Geroldの答えのおかげで、私の解決策は、「コピーアーティファクトのビルドセレクター」パラメーターを追加し、新しい環境変数を使用して、既に追加した文字列パラメーターにリンクすることでした。
Jenkinsのプロジェクト/ジョブごとに1つのワークスペースがあります。ビルドのディレクトリには、ビルドとその結果に関する情報のみが含まれています。
両方のルートディレクトリはManage Jenkins→Configure System→で指定されています Advanced...。
以前のビルドのアーティファクトを展開するには、build master
の別の場所にコピーし、deploy master
から後でアクセスする必要があります。
更新:
Which build→Parameter Nameのインラインヘルプを参照してください:
この名前のパラメータは、上記のビルドパラメータセクションに追加する必要があります。ビルドセレクターを選択するための特別なパラメータータイプがあります。
String Parameterの代わりに、これを使用して、Artifactコピーのビルドセレクターを使用します。