【问题标题】:gitlab - run pipeline for a non-master branch onlygitlab - 仅为非主分支运行管道
【发布时间】:2021-10-29 09:52:19
【问题描述】:

我们正在从 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

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

【问题讨论】:

  • 只是一个非主分支/默认分支还是只用于合并请求?
  • 是的,任何不是主分支的分支

标签: gitlab gitlab-ci


【解决方案1】:

尝试使用这样的规则:

  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"' 

【讨论】:

  • 效果很好,非常感谢!
【解决方案2】:

@tobie van der Merwe 的答案是正确的,它会起作用。我只是想指出,您可能希望做一些不同的事情,以减少重复并使概述更容易。

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

push to aws:
  needs: ["docker-build"]
  script:
    - 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"' 

这样,您可以同时拥有相同的功能,而只是将不同的部分分开在自己的工作中。这减少了维护工作,因为您只有一个地方需要更改它。

【讨论】:

    猜你喜欢
    • 2022-11-04
    • 2020-02-23
    • 2020-10-26
    • 2022-11-20
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2013-01-13
    相关资源
    最近更新 更多