寻找 Gitlab 功能作为 Circle CI 上下文
Looking for Gitlab feature as Circle CI context
在 Circle CI 中,context
可以让我为相同的变量设置不同的值。
比如我设置了dev
和prod
两个环境,在每个环境中,我都设置了几个变量
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION
由于我的环境在不同的 aws 账户中,我可以为它们提供不同的值。
其次,我可以设置权限,开发人员只能访问 dev
上下文,支持团队只能访问 prod
上下文。
但是我在 Gitlab 中没有得到相同的功能 CI。
在他们的一份文档中,它提到了 Group
,但在我检查之后,它根本没有按预期工作。
https://docs.gitlab.com/ee/ci/migration/circleci.html#contexts-and-variables
Contexts and variables
CircleCI provides Contexts to securely pass environment variables across project pipelines. In GitLab, a Group can be created to assemble related projects together. At the group level, CI/CD variables can be stored outside the individual projects, and securely passed into pipelines across multiple projects.
有什么方法可以在 Gitlab 中做到这一点 CI?
Circli中context的用法示例CI供大家参考
version: 2.1
workflows:
staging-workflow:
jobs:
- staging-build:
context:
- staging
prod-workflow:
jobs:
- prod-build:
context:
- prod
我认为你可以通过使用 gitlabs schedules 来实现类似的东西。
只需创建两个包含您要传递的变量的计划。
更新您的 ci 脚本以引用这些变量。
然后每个时间表可以由各自的各方拥有。
您还可以根据环境按组限制变量。因此,如果您有一个开发环境 - 可以限制变量,并且可以限制生产环境的变量。希望这有帮助。
解决了这个问题
- 设置环境 Staging 和 Produciton
当它要求 url 时,忽略这个问题,输入任何你喜欢的 url,我只输入 http://example.com .
仍然不确定我需要输入的正确 url。
- 更新 cicd 中的变量,默认为全部,将其更改为暂存或生产。
设置 -> CICD -> 变量 -> 展开
在截图中,我设置了两次变量AWS_ACCESS_KEY_ID,但分配到不同的环境。
(注意:AWS_ACCESS_KEY_ID
不需要屏蔽,但AWS_SECRET_ACCESS_KEY
应该屏蔽)
- 更新您的管道以使用环境。
上面的gitlab ci环境文档又把我搞糊涂了。 您不必提供url,只需添加环境名称即可。
staging_deploy:
stage: deploy
environment:
name: staging
when: manual
script:
- echo "staging deployment"
在 Circle CI 中,context
可以让我为相同的变量设置不同的值。
比如我设置了dev
和prod
两个环境,在每个环境中,我都设置了几个变量
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION
由于我的环境在不同的 aws 账户中,我可以为它们提供不同的值。
其次,我可以设置权限,开发人员只能访问 dev
上下文,支持团队只能访问 prod
上下文。
但是我在 Gitlab 中没有得到相同的功能 CI。
在他们的一份文档中,它提到了 Group
,但在我检查之后,它根本没有按预期工作。
https://docs.gitlab.com/ee/ci/migration/circleci.html#contexts-and-variables
Contexts and variables CircleCI provides Contexts to securely pass environment variables across project pipelines. In GitLab, a Group can be created to assemble related projects together. At the group level, CI/CD variables can be stored outside the individual projects, and securely passed into pipelines across multiple projects.
有什么方法可以在 Gitlab 中做到这一点 CI?
Circli中context的用法示例CI供大家参考
version: 2.1
workflows:
staging-workflow:
jobs:
- staging-build:
context:
- staging
prod-workflow:
jobs:
- prod-build:
context:
- prod
我认为你可以通过使用 gitlabs schedules 来实现类似的东西。
只需创建两个包含您要传递的变量的计划。
更新您的 ci 脚本以引用这些变量。
然后每个时间表可以由各自的各方拥有。
您还可以根据环境按组限制变量。因此,如果您有一个开发环境 - 可以限制变量,并且可以限制生产环境的变量。希望这有帮助。
- 设置环境 Staging 和 Produciton 当它要求 url 时,忽略这个问题,输入任何你喜欢的 url,我只输入 http://example.com .
仍然不确定我需要输入的正确 url。
- 更新 cicd 中的变量,默认为全部,将其更改为暂存或生产。
设置 -> CICD -> 变量 -> 展开
在截图中,我设置了两次变量AWS_ACCESS_KEY_ID,但分配到不同的环境。
(注意:AWS_ACCESS_KEY_ID
不需要屏蔽,但AWS_SECRET_ACCESS_KEY
应该屏蔽)
- 更新您的管道以使用环境。
上面的gitlab ci环境文档又把我搞糊涂了。 您不必提供url,只需添加环境名称即可。
staging_deploy:
stage: deploy
environment:
name: staging
when: manual
script:
- echo "staging deployment"