如何根据目标计算机是否已拥有文件来跳过GitLab上的CI / CD步骤?

问题描述 投票:0回答:1

从GitLab的official document起,似乎只能根据文件是否更改来跳过CI / CD阶段。是否可以根据要部署的计算机上是否存在文件/文件夹来跳过步骤?

这种情况是使用软件包管理工具很常见。 (例如,PHP中的composer或Node.js中的NPM)当前的规则是检查相应的配置文件是否已更改(例如,对于composer来说是composer.json或对于NPM来说是package.json),以查看是否有必要运行安装步骤(即composer installnpm install),尽管很少发生,但是当使用新计算机进行部署时,CI / CD会崩溃,因为跳过了安装步骤。

当前,通过手动触发安装步骤解决了问题,但是是否可以自动检测主机上的文件是否存在,以确定是否应运行安装步骤?

continuous-integration gitlab gitlab-ci continuous-deployment gitlab-ci-runner
1个回答
0
投票

我不认为有一种方法可以做您描述的事情。在创建任何作业之前,GitLab中的only/except功能在GitLab服务器上运行。为了能够知道服务器上是否已经存在文件,需要创建一个作业并将其分配给gitlab运行程序。

他们有这个问题,看起来可以开始工作,然后通过使用退出代码确定应该跳过它:

https://gitlab.com/gitlab-org/gitlab/issues/16733

同时,您可以做到这一点,以便安装作业始终运行,然后仅使用构建脚本来检查该文件。在GitLab的管道视图中,您将始终看到安装步骤。如果文件已经存在,则实际的作业可以跳过任何操作,因此您无需记住手动运行该作业。

© www.soinside.com 2019 - 2024. All rights reserved.