我想每天部署一次项目,但前提是必须进行更改。 我每个人都有一个小时的部署时间,并且可以使用计划的管道触发和部署。
但是,并非总是有需要部署的更改。理想情况下,如果自上次部署以来对代码库未进行任何更改,则管道不会在这一天运行。
有没有办法实现这种行为?
答案 0 :(得分:2)
这类似于具有4年历史的功能请求gitlab-org/gitlab-foss
issue 19813
GitLab CI仅在特定文件夹已更改时执行
我有一个很大的项目,并且我正在使用带有Pages的GitLab CI进行部署,但是,当我在仓库中更改任何内容时,它将运行CI。
我不希望发生这种情况,我希望它仅在
src
文件夹更改时才能运行。
这可能吗?
最近(2020年7月)的结论是使用only:changes
/except:changes
将
changes
关键字与only
或except
结合使用,可以定义是否应基于Git推送事件修改的文件来创建作业。
示例:
我希望此功能特别适用于
package.json
和package-lock.json
,因为只有在发生更改时我才能运行npm install
。
only:
changes:
- package.json
- package-lock.json
警告,如Matthijs Bierman在the comments和documented here中所指出:
请注意,
only: changes
不能与when: scheduled
一起使用
答案 1 :(得分:0)
您需要在Git上创建一个单独的分支 dev ,在其中存储每小时一次的代码更改,并在一天结束时将其与 Master 分支合并触发在Git CI上构建。
通常,Master是用于部署Git CI的默认分支。您也可以将其更改为其他分支。