はまったりひらめいたり…とか…

Angularや.NETやAzureやその他色々。

メモ書き - AzureDevOpsで別プロジェクトのCIをトリガーにパイプラインを実行する

はじめに

このメモは2021年1月17日時点のAzure DevOpsを使用したメモになっています。

参照されるタイミングによっては、記事内で称しているキャプチャ・設定内容が変更されている可能性がありますのでご注意ください。

やりたいこと

Docsみててこんがらがったので自分用メモ・・・

Azure DevOpsで複数のプロジェクトを構築。

各プロジェクトの構成は下な感じで。

  • 統合プロジェクト
    • サブプロジェクト1
    • サブプロジェクト2
    • ...

サブプロジェクトでライブラリ作成→統合プロジェクトでサブプロジェクトのライブラリを使用してクライアントアプリの開発。といった構成。

サブプロジェクトxのCIが成功→統合プロジェクトのCIを実行 な感じで動作させたい。

統合プロジェクトのパイプラインの構築

サブプロジェクト側のパイプラインは今まで通りの構成で問題なし。

統合プロジェクト側のyamlの頭に👇の構成。

trigger: none

resources:
  pipelines:
  - pipeline: subProjectPipeline  # パイプラインの名称。このCIからアクセスするときの識別子
    source: 'integration-pipeline-two (1)'  # トリガーするパイプライン
    project: integration-pipeline-two  # 別プロジェクトにあるCIの場合はこれを指定
    trigger:
      branches:
      - master

サブプロジェクトでPublisしたものをDownloadしたいときは👇でDLできる。

- download: subProjectPipeline  # pipelineで指定した識別子
  artifact: drop  # Artifact名

補足

Releasesを使用する場合、👇の2つをOffにしないと権限なしでサブプロジェクトでPublishされたリソースにアクセスできないとかあったけど、Pipelinesではそういうものはなさげ。

(まぁReleases Pipeline特有の設定っぽいからそらそうなんだけど、PipelineのほうはこういうのOffにする必要ないんだ。楽だなぁ。と。)

f:id:TakasDev:20210117135717p:plain

参考にしたサイト等

実験で使用したAzure DevOpsプロジェクト