同時は独自のエージェントに基づいています。私の目標は、複数のプロジェクトビルドを並行して実行することです。各プロジェクトビルドは専用コンテナ内で実行されます。私Jenkinsfileは、次のようになります。ジェンキンスパイプライン&ドッカープラグイン - 私は一緒にドッカープラグインで、Jenkinsfileでパイプラインを実装するためのプラグインのパイプライン・スイートでジェンキンスバージョン2.7.1を使用してい
node('docker-agent') {
stage('Checkout') {
checkout scm
}
stage('Setup') {
build(job: 'Some External Job', node: env.NODE_NAME, workspace: env.WORKSPACE)
}
}
私は、外部ジョブを呼び出すための要件がありますが、私はcheckout scm
ステップがnode
とworkspace
パラメータしたがって、コードをチェックアウトした同じワークスペース上で実行するために、これを必要とします。私はnode
ブロック内build
呼び出しをラップすることにより、効果的に執行を浪費することを理解しますが、エージェントはドッカークラウド上のコンテナであり、実際にすべてのリソースを無駄にされていないので、私はそれで大丈夫ですよ。
私のアプローチの一つの問題は、このプロジェクトのビルドの別のインスタンスが2つの段階の間の時間間隔で異なる実行中のインスタンスからの執行を盗むことができたということです。
(1)プロジェクトビルドは同時に実行できますが、(2)各ビルドはdocker-agent
というラベルのエージェントの新しいインスタンス上で実行されることを基本的に確認できますか?
私はロックのプラグインを試してみたが、新しいビルドが単純ではなく、独自のエージェントをスピンアップよりも、既存のエージェントのロックを取得するために待機します。
それぞれ1人のエグゼキュータで複数のエージェントを使用するとどうなりますか?ビルドは何をしていますか?私は通常、私のパイプラインにドッカーの作成を使用しています。これは、「私の目標は、複数のプロジェクトビルドを並行して実行することです。各プロジェクトは専用コンテナ内でビルドされます。 –