当管道在 Gitlab 中运行时,如何禁用推送、合并和拉入 master?

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

我每天都在运行管道。该管道基本上将我的 origin/master 推送到几个远程分支。由于有许多远程分支(约 70 个),这可能需要大约 1.5 小时(包括测试阶段)。在此部署管道期间,可以推送到 origin/master。因此,我的测试可能不会针对更改运行,但仍会被推送到远程分支。有没有办法在部署管道运行时禁用对 origin/master 的任何更改?

我正在考虑在管道中引入一个新阶段来锁定分支,以及另一个阶段在部署完成后解锁分支。这是一个易于管理的解决方案吗?我应该去别处看看吗?如何才能实现这一目标?

git deployment gitlab gitlab-ci
1个回答
0
投票

一种方法是在 CI/CD 管道中创建一个部署标志,以防止在部署完成之前推送到 master。这可以使用 CI/CD 系统和 Git 挂钩都可以访问的文件来完成。

创建部署标志:在管道启动之前,设置部署标志,可以是部署正在进行的文件。

在推送期间检查标志:使用 Git 预推送挂钩在允许推送到 master 之前检查标志(文件)。

预推钩子中的示例:

# Check if deployment flag exists
if [ -f /path/to/deployment_in_progress ]; then
  echo "Deployment is in progress. Please wait."
  exit 1
fi

部署后删除标记:部署成功完成后,删除标记以允许对 master 进行进一步更改。

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