![](/img/trans.png)
[英]How to do a helm push of only those files which have changed in Gitlab CI?
[英]GitLab CI/CD: Run jobs only when files in a specific directory have changed
當且僅當存儲庫特定目錄中的文件發生更改時,我想在.gitlab-ci.yaml
上運行特定作業。 有沒有辦法使用 gilab 的 ci/cd 工具來做到這一點,或者只運行自定義構建腳本會更容易嗎?
GitLab 11.4 中引入的更改策略。
例如:
docker build:
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
only:
changes:
- Dockerfile
- docker/scripts/*
- dockerfiles/**/*
- more_scripts/*.{rb,py,sh}
在上面的場景中,如果您要將 GitLab 的多個提交推送到現有分支,GitLab 會創建並觸發 docker 構建作業,前提是其中一個提交包含對以下任一方面的更改:
你可以這樣做:
trigger_documentation:
image: alpine:3.8
stage: trigger_documentation
script:
- apk update && apk add git curl bash
- |
if git diff --name-only --diff-filter=ADMR @~..@ |grep ^doc/; then
echo "triggering..."
fi
尚不可能,請參閱https://gitlab.com/gitlab-org/gitlab-ce/issues/19232
另一方面,如果您為 CI 准備自定義腳本,您可以根據修改的文件/路徑來限制 CI 的作用。
這現在是可能的:
rules:
- changes:
- package.json
- yarn.lock
- exists:
- node_modules
when: never
- when: always
您可以檢查文件更改或檢查是否存在。 規則文件。
您可以使用rules:changes
關鍵字:
rules:
- changes:
- directory/**/*
請參閱: https ://docs.gitlab.com/ee/ci/yaml/#rules
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.