1

我们有一个基于 Gitlab CD/CI 的主存储库。现在随着我们的成长,我们很难使用 Git 自动部署来更新每个客户的应用程序。

现在,我们正在寻找一种解决方案,当生产阶段成功并通过测试时,我们所有的客户都会获得最新的部署并自动提取更新。(继续发货)

Gitlab 中有一个部署到生产环境,但它适用于单个生产环境,我们希望为每个镜像复制此步骤。

4

2 回答 2

0

Gitlab-CI 部署阶段可以有多个环境,您可以将每个环境设置为自动/手动部署。

示例:只需将 staging 更改为 customer1,将 production 更改为 customer2,然后根据需要添加任意数量。

stages:
  - test
  - build
  - deploy

test:
  stage: test
  script: echo "Running tests"

build:
  stage: build
  script: echo "Building the app"

deploy_staging:
  stage: deploy
  script:
    - echo "Deploy to staging server"
  environment:
    name: staging
    url: https://staging.example.com
  only:
  - master

deploy_prod:
  stage: deploy
  script:
    - echo "Deploy to production server"
  environment:
    name: production
    url: https://example.com
  when: manual
  only:
  - master

如果您无权访问客户环境,另一种解决方案是应用程序自动更新。

还可以查看似乎专为 CD 设计的Spinnaker 。

于 2018-07-30T06:00:27.920 回答
-1

您可能想查看DeployHQ。它支持同时部署到无限的服务器。

于 2018-07-30T10:47:09.753 回答