在 Bitbucket 管道中定义多个环境构建

Defining multiple environment builds in Bitbucket pipelines

我发现与 Bitbucket 管道存在矛盾,我认为这是我的误解造成的

我想创建一个用于暂存的管道和一个用于生产的管道。这 2 个管道之间的区别在于每个管道都为 deployment 设置了不同的值,因此我可以使用管道部署变量

由于 develop 合并到 master 的自然流程,我无法在每个分支上保留单独的 bitbucket-pipelines.yml 版本,因为 develop 的下一次合并 - > master 将更新管道的 master 分支版本

所以我似乎需要 bitbucket-pipelines.yml 的单一版本,只有在可以在该文件中定义多个环境的情况下才可以,但在我看来目前情况不可能如此

image: fkmy/atlassian-pipeline-awscli-node:latest

pipelines:
 custom:
  staging:
   - step:
    name: Staging Deployment
    deployment: staging
    services:
     - docker
    script:
      - echo "Do something specific to ${ENVIRONMENT}

  production:
   - step:
    name: Production Deployment
     deployment: production
     services:
       - docker
     script:
      - echo "Do something specific to ${ENVIRONMENT}

在上面的示例中,${ENVIRONMENT} 将是 Pipelines 部署变量中的一个变量集

但是上述管道在管道 selection

中没有得到 stagingenvironment 的识别

我不能使用 branches 部分,因为我不希望在每次提交到存储库时都对 stagingproduction 进行部署

我的总体目标是能够通过 Run pipeline 按钮手动 运行 暂存或生产部署,并能够 select 部署到 [=25] 的环境=]

首先,您的 Deployments 应该有上面提到的部署组,如附图所示(这可以在 Repository settings 中找到,名称可以根据您的需要而不同)。之后你有两种方法可以做到这一点。要么在管道中包含 Env 变量,要么将它们包含在“部署”页面上,在这两种情况下,您都可以使用有关特定部署组的变量。更简洁的方法是将其添加到部署组。