【问题标题】:Want to run two separate Pipeline from .gitlab-ci.yml file against two separate branches for deploying into two separate aws accounts想要从 .gitlab-ci.yml 文件中针对两个单独的分支运行两个单独的管道,以便部署到两个单独的 aws 帐户中
【发布时间】:2020-06-17 00:25:33
【问题描述】:

我拥有针对所有分支的 aws“A”帐户的所有管道。现在我想只针对主分支运行aws“B”帐户的管道,其余分支管道将触发aws“A”帐户。请指导我如何配置管道以针对同一 .gitlab-ci.yml 文件中的两个帐户运行 aws“cli”命令。只想通过“aws s3”cli 命令将一些文件托管到 s3 中。

问候 阿尼克特

【问题讨论】:

    标签: amazon-s3 gitlab gitlab-ci aws-cli gitlab-ci-runner


    【解决方案1】:

    在 .gitlab-ci.yml 中包含 only:refsexcept:refs

    job_for_master_only:
      only:
        refs:
          - master
      script:
          - command_for_B_account
    
    job_for_other_branches:
      except:
        refs:
          - master
      script:
          - command_for_A_account
    

    参考:https://docs.gitlab.com/ee/ci/yaml/#onlyrefsexceptrefs

    评论后编辑

    如果命令相同,只是配置不同,则可以使用作业模板。作业模板的名称必须以“.”开头。使用extends关键字来使用模板:

    .job_template:
      script:
        - some_command_that_use_environment_variable_ACCOUNT_ID
    
    job_for_master_only:
      extends:
        - .job_template
      only:
        refs:
          - master
      variables:
        ACCOUNT_ID: B
    
    job_for_other_branches:
      extends:
        - .job_template
      except:
        refs:
          - master
      variables:
        ACCOUNT_ID: A
    

    参考:https://docs.gitlab.com/ee/ci/yaml/#extends

    【讨论】:

    • 两个账户的命令是一样的,只是值会根据环境而改变。命令与 s3 的“aws cli 命令”相关。我想问如何为单独的帐户配置不同的不同aws配置文件以部署到不同的帐户s3存储桶中。
    • @Aniket 我已经编辑了我的答案以满足您的情况
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多