CI/CDでAzure DevOpsの設定を開始しました。これは不可能かもしれませんが、答えを見つけたいと思います。
私は6つのプロジェクトを持つソリューションを持っています:
CI/CD定義内の独自のAzure App ServiceにWeb API、Webサイト、およびNode.jsプロジェクトを公開する方法について検索する前に、次のことを行います。
特定のプロジェクトのみがデプロイされるように設定することは可能ですか?つまり、Node.jsプロジェクトは公開されているか、Web APIとWebサイトのみが公開されていますが、Node.jsは公開されていません。
または、別のソリューションで物事を維持する必要がありますか?
それらを別々のソリューションで保持している場合、ソース管理(Git)に関して、共有プロジェクト(インフラストラクチャ、リポジトリ、モデル)にどのような影響がありますか? Web Apiソリューションのモデルとリポジトリにコードを追加した場合、Web Api Gitリポジトリではなくこれらの変更をコミットしますか?これは、同じモデルおよびリポジトリプロジェクトを参照する他のプロジェクトにどのように影響しますか?これはGitサブモジュールが登場する場所ですか?
更新1(2019/3/8)
Path filters( https://docs.Microsoft.com/en)を使用して1つのソリューションでこれを機能させることができるようです-us/Azure/devops/pipelines/build/triggers?view = Azure-devops )。さらなる入力にまだ興味があります。
これが他の人に役立つことを願っています:
Build
定義でPath filtersを使用してこれを解決しましたが、問題なく動作します。私は、プロジェクトごとに1つのビルド定義を作成しました。これは、どこかでライブまたはホストする必要がある(私の例では、3つのBuild
定義:Web Api、Webサイト、Node.js)。
Path filterでプロジェクトへの適切なパスを使用すると、適切なBuilds
のみがスピンアップし、変更されていないプロジェクトはビルドをトリガーしません。各ビルドには独自のrelease
があり、指定されたアプリを独自の宛先にデプロイします。
私があなたの質問をよく理解しているかどうかを確認してください、特定のビルドパーツをデプロイする必要がありますはい、Azure DevOpsでこれを行うことができます。 Azure DevOpsには、ビルド定義とリリースパイプラインがあります。ビルドでは、プロジェクトをビルドして、言及した2つのコンポーネントだけを公開し、リリースではそれらをデプロイします。