Gitlab 阶段对于其他分支是可选的,但是对于主分支是必需的

Gitlab 阶段对于其他分支是可选的,但是对于主分支是必需的,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,目前,我们在GitLab CI管道中有4个阶段。 当有人与主分支合并时,所有4个阶段实际上都是强制性的 我可以制作最后一个阶段“only:master”,它将把它从非主分支推送的管道中取出,并将它放在管道中,以便合并到主分支 是否有办法使非主分支推送的最后阶段可选/可选。当我们希望在常规分支上运行此阶段时,有少量实例。我设想begin能够进入分支推送的管道,并能够单击最后一个阶段“启用”此推送和仅此推送。我们最终制作了一个模板,并从中派生了两个步骤,每个步骤都有不同的规则。它工作得很好 .tar

目前,我们在GitLab CI管道中有4个阶段。 当有人与主分支合并时,所有4个阶段实际上都是强制性的

我可以制作最后一个阶段“only:master”,它将把它从非主分支推送的管道中取出,并将它放在管道中,以便合并到主分支


是否有办法使非主分支推送的最后阶段可选/可选。当我们希望在常规分支上运行此阶段时,有少量实例。我设想begin能够进入分支推送的管道,并能够单击最后一个阶段“启用”此推送和仅此推送。

我们最终制作了一个模板,并从中派生了两个步骤,每个步骤都有不同的规则。它工作得很好

.tarball: &tarball
  stage: package
  script:
    - whoami
    - echo $PATH
    - which git-lfs
    - echo "Cloning Common/master"
    - git clone -b master https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/abc/common.git Common
    - echo "Cloning Ansible/${CI_COMMIT_REF_NAME}"
    - git clone -b ${CI_COMMIT_REF_NAME} https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/abc/ansible.git Ansible
    - echo "Excluding the following from tar- ${TAR_EXCLUDES}"
    - tar ${TAR_EXCLUDES} -czf ${TAR_ARCHIVE} Ansible Common 
    - tar -tf ${TAR_ARCHIVE} > manifest.txt
  artifacts:
    paths:
      - ${TAR_ARCHIVE}
      - manifest.txt
  tags:
    - shell
 
tarball_master:
    <<: *tarball
    only:
      - master

tarball_other:
    <<: *tarball
    except:
      - master
    when: manual
.tarball:&tarball
阶段:包装
脚本:
-哇
-echo$PATH
-哪个git lfs
-echo“克隆公共/主”
-git克隆-b主机https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/abc/common.git common
-echo“克隆Ansible/${CI\u COMMIT\u REF\u NAME}”
-git克隆-b${CI\u COMMIT\u REF\u NAME}https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/abc/ansible.git ansible
-echo“从tar中排除以下内容-${tar_排除}”
-tar${tar_EXCLUDES}-czf${tar_ARCHIVE}可解析公共
-tar-tf${tar_ARCHIVE}>manifest.txt
人工产品:
路径:
-${TAR_ARCHIVE}
-manifest.txt
标签:
-壳
tarball_大师: