首页 > 解决方案 > gitlab - 仅为非主分支运行管道

问题描述

我们正在从 Bitbucket 迁移到 Gitlab,我的任务是迁移管道配置。

我被要求查看的一件事是配置管道配置文件,以便某些操作仅在非主分支中执行。

例如,在 master 分支中,我们想要执行以下操作:

script:
    - docker build -t $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA .
    - docker push $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA

但在任何非主分支中,我们都想做以下事情:

script:
    - docker build -t $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA .
    - docker push $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA
    - aws lambda update-function-code --region $AWS_DEFAULT_REGION --function-name function1 --image-uri xxxxxx.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/function1:$CI_COMMIT_SHA

我正在努力寻找可以实现这一目标的任何代码示例,有什么想法吗?

标签: gitlabgitlab-ci

解决方案


尝试使用这样的规则:

  script:
    - docker build -t $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA .
    - docker push $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA

  rules:
    - if: '$CI_COMMIT_BRANCH == "master"' 

  script:
    - docker build -t $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA .
    - docker push $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA
    - aws lambda update-function-code --region $AWS_DEFAULT_REGION --function-name function1 --image-uri xxxxxx.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/function1:$CI_COMMIT_SHA

  rules:
    - if: '$CI_COMMIT_BRANCH != "master"' 

推荐阅读