如何使用 GitLab CI/CD 配置仅在主分支上触发 CI/CD 管道?

问题描述 投票:0回答:1

我有一个 GitLab CI/CD 配置,我希望仅当更改推送到主分支时才触发管道。以下是我的

.gitlab-ci.yml
文件的简化版本:

stages:
    - deploy

deploy:
    stage: deploy
    rules:
        - if: '$CI_COMMIT_REF_NAME == "master"'
        - when: manual
    before_script:
        - apt-get update && apt-get install sshpass && apt-get install make
        - chmod 400 $SSH_KEY
    script:
        - sshpass -p $SSH_PASS ssh -o "StrictHostKeyChecking=no" $USER_NAME@$HOST "cd /home/backend && git pull && make docker-restart"

使用此配置,管道应仅在更改推送到主分支时运行。然而,即使更改被推送到其他分支,管道似乎也会被触发。

如何修改 GitLab CI/CD 配置以确保仅当更改推送到主分支时才触发管道?

git gitlab cicd
1个回答
0
投票

您的

if
键中有一个小拼写错误,但除此之外,我认为您最好使用变量
$CI_COMMIT_BRANCH
代替,因为您当前使用的变量也考虑了标签。另外,作为一个小改进,如果您的默认分支是
master
,您也可以使用变量进行检查:

stages:
    - deploy

deploy:
    stage: deploy
    rules:
        - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
          when: manual
    before_script:
        - apt-get update && apt-get install sshpass && apt-get install make
        - chmod 400 $SSH_KEY
    script:
        - sshpass -p $SSH_PASS ssh -o "StrictHostKeyChecking=no" $USER_NAME@$HOST "cd /home/backend && git pull && make docker-restart"

可以在此处找到 GitLab 预定义变量的完整参考。

© www.soinside.com 2019 - 2024. All rights reserved.