1

私はジェンキンスパイプラインとともにGitHubの組織プラグインを使用して依存チェーンを編成しようとしている目標パスアーティファクトまたはString

ビルドしている製品には、多くの共有依存があります。依存バージョンの管理と更新を管理するために、nugetパッケージを使用しています。

しかし、私は、オーケストレーションを行っているプロジェクトに必要なアーティファクト/情報を得ることができません。

SCMの戦略

nugetパッケージを構築し、任意の下流の新しいリファレンス必要があることをビルドします画策すべき任意の上流の共有ライブラリを変更します。私は、各上流プロジェクトの下流オーケストレーションをハードコーディングしています

  1. を。 Aが構築されると、Aに依存するBとCはAからの最新の成果物で構築されます。その後、BとCに依存するDとAとCに依存するEが最新の成果物必要に応じてA、B、Cから等々。これらは、ビルドジョブ:ジョブ名の構文を使用して依存関係が構築されるため、AのJenkinsfileからすべてトリガーされます。依存関係が分岐して下流に集中するため、各ステップでオーケストレーションを下流に渡すことができたソリューションを見つけることができず、上流プロジェクトとは異なる参照で同じ下流プロジェクトの複数のビルドをトリガーしたくありません。
  2. 親プロジェクトのアーティファクト情報をダウンストリームジョブに渡すことはできますが、私が直面している問題は、親プロジェクトにはダウンストリームアーティファクトのアセンブリバージョン情報がありません(ジョブをさらに下流に編成する必要があります)。 Stash/Unstashにはクロスジョブ機能がないようで、アーカイブ/アーカイブ解除は廃止予定です。

TLDR: 私は(複数の下流ジョブから)ジョブ実行途中に上流の文字列またはテキストファイルを渡すのいずれかの方法を必要とするか、または私はと共有下流の依存関係を持つ複数のdowstreamジョブのための方法を必要としますダウンストリームジョブに情報を統合して渡します(1回だけトリガーします)。

ありがとうございます!

答えて

0

組み込みの「アーカイブ」ステップ(see syntax in pipeline syntax)をcopyArtifact pluginと組み合わせて使用​​しました(クラス名でJavaスタイルのステップを使用する必要があります)。

各ビルドのダウンストリームビルドをダウンストリームビルドに編成する必要はなく、これまでのところその解決策を見つけることができなかったので、ワークフローをマージすることができます。

0

ビルド結果のbuildVariablesを使用できます。

主な仕事 - 設定:パイプラインの仕事

node { 
    x = build job: 'test1', quietPeriod: 2 
    echo "$x.buildVariables.value1fromx" 
} 

test1の - 設定:パイプラインの仕事

node { 
    env.value1fromx = "bull" 
    env.value2fromx = "bear" 
} 
+0

おかげで、これは、しかし、依然として次にオーケストレーションであり、アーティファクトプラグインを使用することによって達成結構です。最新のパイプラインプラグインには、必要なワークフローを処理する能力があると思いますが、実装する時間はまだありません。 – tphuoc

1

この記事はあなたのために役立つことができます - https://www.cloudbees.com/blog/using-workflow-deliver-multi-componentapp-pipeline

時々アーティファクトの方法が必要とされています。 上流ジョブ:

void runStaging(String VERSION) { 
    stagingJob = build job: 'staging-start', parameters: [ 
     string(name: 'VERSION', value: VERSION), 
    ] 
    step ([$class: 'CopyArtifact', 
     projectName: 'staging-start', 
     filter: 'IP', 
     selector: [$class: 'SpecificBuildSelector', 
      buildNumber: stagingJob.id 
     ] 
    ]); 
    IP = sh(returnStdout: true, script: "cat IP").trim() 
    ... 
} 

下流ジョブ

sh 'echo 10.10.0.101 > IP' 
archiveArtifacts 'IP' 
関連する問題