当前位置: 首页 > 知识库问答 >
问题:

Q: Gitlab CI谁要重试旧管道

慕容高卓
2023-03-14

在第一次尝试一个包含4个阶段和1个作业的旧管道时,我遇到了一个故障,当管道仅在运行时重试步骤4和步骤1

我的gitlab ci。yml

stages:
  - build
  - deploy
  - clean

before_script:
    …
variables:
  GIT_SUBMODULE_STRATEGY: recursive
  GIT_STRATEGY: clone

build:
  stage: build
  script:
   - git submodule init
   - git submodule update -f
  allow_failure: false
  when: manual
  only:
    - master

production:
  stage: deploy
  script:
    - ssh $DEPLOY_SERVER_USER@$DEPLOY_SERVER_ADDRESS "[ -f /usr/bin/rsync ] || apt-get install -qq -y rsync && [ -f /usr/bin/getfacl ] …. »
   allow_failure: false

rollback:
   stage: clean
   script:
     - ssh $DEPLOY_SERVER_USER@$DEPLOY_SERVER_ADDRESS "[ -d /var/www/old/ ] … exit 1"
   when: on_failure
   allow_failure: false

cleanup:
  stage: clean
  script:
    - ssh $DEPLOY_SERVER_USER@$DEPLOY_SERVER_ADDRESS "rm -rf /var/www/old && rm -rf /var/www/new && rm -rf /var/www/acl"
  when: on_success
  allow_failure: false

或者,在我的git工作流程中,将我的主机还原为所需的提交不是更合乎逻辑吗?

共有1个答案

池兴邦
2023-03-14

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

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

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

您还需要将git子模块命令移动到其他步骤,因为其他作业只使用原始代码,而不使用子模块的内容

 类似资料:
  • 问题内容: 我的部门目前承担着维护相当大的COBOL代码库的任务。我们想知道如何添加新功能来满足业务需求。如今,COBOL程序员很难再出现了,我们还认为,使用Java或C#等更现代的语言可以提高生产率。 我们认为我们有四个选择: 从头开始重写所有内容,将旧应用程序留给自己,直到准备好进行替换 从头开始重写所有内容,使一些人可以维护旧的应用程序,以适应新的业务需求。 用现代语言编写所有新功能,并找到

  • 作为本章的第一节,首先要搞清楚一个问题,Linux 系统中为什么需要设定不同的权限,所有用户都直接使用管理员(root)身份不好吗? 由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(如家人、朋友等)。在这种情况下,大家都可以使用管理员身份直接登录。但在服务器上就不是这种情况了,往往运行的数据越重要(如游戏数据),价值越高(如电子商城数据、银行数据),则服务器中对权限的设定就要越详细,

  • 我不是一个有经验的程序员,我对Java的了解很少。 代码是 我用铸造把它修好了。 但还有一个问题我无法解决 software.jar是整个包 谢谢你

  • 我是Spring的新手,尝试用一个简单的测试实现Spring重试。但是我不能让它工作,希望有人能告诉我我做错了什么。我还想知道,是否可以编写单元测试来验证Spring重试已经尝试了请求的最大重试次数?因为到目前为止,谷歌搜索似乎只能在集成测试中工作,因为它需要Spring首先设置上下文。

  • 家谱 假设我们有这样一个家谱图: 我们现在的任务是将这个家谱图写成程序代码的形式。请打开你最喜欢的文本编辑器,输入以下代码。 male(di). male(jianbo). female(xin). female(yuan). female(yuqing). father(jianbo,di). father(di,yuqing). mother(xin,di). mother(yuan,yuqi