Kri*_*azs 3 continuous-integration heroku gitlab gitlab-ci
如果我推送到 master,它会完美运行,所有环境变量都可用,并且我已成功部署到 Heroku。
问题:如果我推送到开发分支,它无法看到部署的环境变量。
$ dpl --provider=heroku --app=$HEROKU_DEV_APP --api-key=$HEROKU_API_KEY
invalid option "--api-key="
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
环境设置:
.gitlab-ci.yml:
stages:
- build
- test
- deploy
build:
stage: build
image: maven:3.6.3-jdk-14
script:
- mvn clean package
tags:
- docker
test:
stage: test
image: maven:3.6.3-jdk-14
script:
- mvn test
tags:
- docker
deploy_dev:
stage: deploy
image: ruby:2.3
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_DEV_APP --api-key=$HEROKU_API_KEY
environment:
name: prod
url: https://.....herokuapp.com/
only:
- dev
tags:
- docker
deploy_prod:
stage: deploy
image: ruby:2.3
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_PROD_APP --api-key=$HEROKU_API_KEY
environment:
name: prod
url: https://.....herokuapp.com/
when: manual
only:
- master
tags:
- docker
Run Code Online (Sandbox Code Playgroud)
这是因为您的 Heroku api 密钥变量被设置为protected。
受保护的变量仅对受保护的分支和受保护的标记可见。这就是为什么它在 master 上适用但在 dev 上不起作用。
更多信息:https://gitlab.com/help/ci/variables/README#protect-a-custom-variable和https://gitlab.com/help/user/project/protected_branches.md
您的选择是:要么删除受保护的标志,要么为您的非受保护分支引入另一个不受保护的变量和另一个 api 密钥,这将不太敏感。
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |