GitLab,带依赖项的手动作业

GitLab,带依赖项的手动作业,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我的管道分为三个阶段:测试、准备和发布 测试,针对任何分支上的任何提交执行 准备,在开发和掌握 发布、重用来自Prepare的工件,并在develop*和master上执行 我在手动阶段添加了“手动发布”,以手动发布除develope和master之外的任何成功提交。然而,该阶段需要来自Prepare的工件。我使用了needs来运行Prepare,但是如果我们不触发“手动发布”,那么在测试之后就会执行该操作,这是浪费时间和资源 我们可以在另一个作业中附加/导入/合并现有作业吗 我已尝试在手动

我的管道分为三个阶段:测试、准备和发布

  • 测试,针对任何分支上的任何提交执行
  • 准备,在开发掌握
  • 发布、重用来自Prepare的工件,并在develop*和master上执行
我在手动阶段添加了“手动发布”,以手动发布除developemaster之外的任何成功提交。然而,该阶段需要来自Prepare的工件。我使用了
needs
来运行Prepare,但是如果我们不触发“手动发布”,那么在测试之后就会执行该操作,这是浪费时间和资源

我们可以在另一个作业中附加/导入/合并现有作业吗

我已尝试在手动发布中导入准备作业,但未成功:

build-and-publish-manually:     
  <<: *prepare-docker
  <<: *build-and-publish
  except:
    variables:
      - $CI_COMMIT_REF_NAME == $DEVELOP_BRANCH 
      - $CI_COMMIT_REF_NAME == $MASTER_BRANCH
  when: manual
手动生成和发布:

解决方案是制作第一本工作手册,下一本“需要”它

我添加了一个手动触发的手动准备作业,发布作业被配置为需要手动准备。因此,只有在完成手动准备后,他才会被执行

#。。。
手动准备docker:

根据我对手工作业的经验,我们只是手动运行整个管道,然后才执行所需的手工步骤。真的是这样浪费资源吗?我的意思是,您使用这种手动执行的频率有多高?您只需要执行一个步骤就需要消耗多少?对于更高级的管道,我们使用Jenkins,很容易将其配置为从特定构建编号(例如,作为参数)获取工件。
# ...

prepare-docker-manually:
  <<: *prepare-docker
  when: manual

build-and-publish-manually:     
  <<: *build-and-publish
  except:
    variables:
      - $CI_COMMIT_REF_NAME == $DEVELOP_BRANCH 
      - $CI_COMMIT_REF_NAME == $MASTER_BRANCH