web-dev-qa-db-ja.com

Gitlab CI-特定のファイルセットで変更が発生した場合にのみビルドをトリガーする方法

Gitlab CIで、特定のファイルセットに変更が発生した場合にのみ、ビルドをトリガーするにはどうすればよいですか?

特定のファイルを含めたり、除外したりしてビルドをトリガーする方法はありますか?たとえば、README.md, .gitignoreファイルを更新しても、ビルドはトリガーされません。

18
Ishan

更新2

/以外は不安定な機能のようです。代わりにrules:changesを使用することをお勧めします。

job:
  script:
    - build # replace with your build command
  rules:
    - changes:
      - /*.{Java, py} # ... or whatever your file extension is

更新1

コメントに記載されている Gajus のように、これが可能になりました!

マージリクエストhttps://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21981

Documentationhttps://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic (ありがとう Connor Shea コメントのヒント)

元の投稿

いいえ、それは不可能です–今ではできません!

私はこれがあなたが探している問題だと思います: https://gitlab.com/gitlab-org/gitlab-ce/issues/19232 –これは非常に高い評価の問題です(100以上のサンプ-アップ)。

マイルストーンはNext 3-6か月、4か月前に変更されました。 ( https://gitlab.com/gitlab-org/gitlab-ce/issues/19232#note_3194385 )この機能がすぐに見られることを願っています。

9
mhellmeier

更新:これは11.4以降で可能になりました https://docs.gitlab.com/ee/ci/yaml/#onlychangesexceptchanges を参照してください

元の投稿:

現在、編集されたファイルに基づいて条件付きでGitLab CIでビルドをトリガーする方法はありません。

私は以前この機能について考えたことがありますが、さまざまなユースケースで非常に役立つと思います。

私がこれについて見つけることができる最も近い問題は https://gitlab.com/gitlab-org/gitlab-ce/issues/2301 です

とにかく、あなたの質問に答えるには:

CIにはマージリクエストの概念がないため、マージリクエストによってファイルが変更されたかどうかを判断する方法がないため、現時点では手動でこれを行うことはできません。

マージ要求が何であるかを「理解」するパイプラインは、近いうちに追加する必要があります。

4
Connor Shea

誤ってあなたの質問を見つけました。少し遅いと思います:)しかし、その機能はバージョン11.4以降で利用可能です

docs を参照

2
NobbyNobbs