问:Gitlab CI 谁重试旧管道

Posted

技术标签:

【中文标题】问:Gitlab CI 谁重试旧管道【英文标题】:Q : Gitlab CI who to retry older pipeline 【发布时间】:2020-11-04 19:11:01 【问题描述】:

我第一次在重试具有 4 个阶段和 1 个作业的旧管道时遇到故障,当管道仅重试第 4 步和第 1 步作为运行时

我的 .gitlab-ci.yml

阶段: - 建造 - 部署 - 干净的 before_script: … 变量: GIT_SUBMODULE_STRATEGY:递归 GIT_STRATEGY:克隆 建造: 阶段:构建 脚本: - git子模块初始化 - git 子模块更新 -f 允许失败:假 时间:手动 只要: - 掌握 生产: 阶段:部署 脚本: - ssh $DEPLOY_SERVER_USER@$DEPLOY_SERVER_ADDRESS "[ -f /usr/bin/rsync ] || apt-get install -qq -y rsync && [ -f /usr/bin/getfacl ] .... » 允许失败:假 回滚: 阶段:干净 脚本: - ssh $DEPLOY_SERVER_USER@$DEPLOY_SERVER_ADDRESS "[ -d /var/www/old/ ] ... 退出 1" 何时:on_failure 允许失败:假 清理: 阶段:干净 脚本: - ssh $DEPLOY_SERVER_USER@$DEPLOY_SERVER_ADDRESS "rm -rf /var/www/old && rm -rf /var/www/new && rm -rf /var/www/acl" 何时:on_success 允许失败:假

或者在我的 git 工作流程中将我的 master 恢复到所需的提交不是更合乎逻辑吗?

【问题讨论】:

【参考方案1】:

是的,正确的方法是先还原代码,然后再次运行管道。

但在某些情况下,我们没有时间修复代码,需要紧急回滚。

但是看看你的管道,你的步骤构建是没有用的。

您还需要将git submodule 命令移至其他步骤,因为其他作业仅使用您的原始代码,而没有子模块的内容

【讨论】:

以上是关于问:Gitlab CI 谁重试旧管道的主要内容,如果未能解决你的问题,请参考以下文章

调度器分配任务给运行者失败,请重试或联系系统管理员

如何为 Jenkins 管道中的失败阶段实施重试选项?

Azure 机器学习管道:如何在失败时重试?

有没有办法监控内部 Azure 数据工厂管道,例如有效负载大小、重试次数、并发作业和类似参数?

Gitlab-ci - 管道无法运行

GitLab CI - 保持最后的管道状态