私は非常に大きな.Netプロジェクトのために現在のビルドシステムを改良しています。このプロジェクトには、178のVisual Studio Solutionsと800以上のcsprojファイルがあります。Gitlab-CI:特定のフォルダが更新された場合にのみビルドされます
私たちは現在TeamCityを使用していますが、チーム数が膨大になり、メンテナンスが非常に困難になっています。ある時点で私はGitlabに移行しました(私が到着する前)、私はGitlab-CIを使って実行可能なソリューションを得ようとしています。
私はGitlab-CIを使ってすべてのコンポーネントをビルド、テスト、パッケージすることができましたが、すべてが1つのジョブで実行されているので、それほど美しいものではありません。 Gitlab-CIのすべての成果物を管理するのは非常に難しい(そして遅い)ため、私たちはこれを今のように行うことにしました。しかし、私は別のSOの質問のためにそれを残すでしょう... ;-)
今日私の質問は、特定のフォルダに変更があった場合にジョブを実行するように.gitlab-ci.ymlファイルを設定できますか? 変更がCoreまたはコンフィグに影響を与えるマスターにしてマージされている場合 . ├── Build ├── Config ├── Core ├── Database ├── Services └── Websites
、その後、ツリー全体が構築され、すべてがこれらのコンポーネントに依存するため、テストする必要があります:
は、この(簡体字)ディレクトリツリーを考えてみましょう。 ただし、サービスが変更された場合は、サービス以外のものを構築してテストする必要はありません。同様に、データベースが変更された場合、データベースとサービスのみがビルドされる場合、これは複雑すぎる可能性があります。
、コンポーネント専用の枝を使用していますか? – Martin
@mgansler私はgitブランチを意味すると思いますか?この段階では、すべてが1つのリポジトリにあります。通常、チームはメインのレポをフォークし、後でその変更をマージします。 –
はい、私はgitブランチを意味しました。各コンポーネントに専用のブランチを導入する場合は、gitlab-ciの 'only'を使用できます:http://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except – Martin