在Gitlab CI/CD中如何在管道期间检出另一个分支

nnsrf1az  于 2022-11-27  发布在  Git
关注(0)|答案(1)|浏览(207)

我想 checkout 到合并请求管道中的dev分支,该管道是为与其他分支合并到dev而打开的。我将检查此作业中的某些内容,然后根据此作业的成功与否继续其他一些作业。是否可以执行此操作,或者我必须始终使用管道触发的分支?
添加gitlab配置的相关部分

variables:
  GIT_STRATEGY: clone

checksomething:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev"
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    - if: $CI_COMMIT_BRANCH
  environment:
    name: development
  before_script:
    - git checkout dev
  script:
    - !reference [.check-something-on-dev]

但我有这个错误:

$ git checkout dev
error: pathspec 'dev' did not match any file(s) known to git```
zfycwa2u

zfycwa2u1#

首先尝试一个git branch -avv,看看通过GitLab-CI作业完成的原始克隆/检出有哪些分支可用。
根据所使用的refspec,克隆的仓库可能不会引用任何origin/dev分支,从而阻止git checkout(或者,就此而言,git switchcheckout的更现代的替代品)的猜测模式工作。

相关问题