在我的.travis.yml配置中,我想根据触发构建的分支设置不同阶段(开发/生产)的部署。我正在使用 shell 脚本进行部署,即script提供程序。
问题:我需要为不同的阶段(主要是 AWS 密钥)传递不同的环境变量。并且这些变量在版本控制中存储时需要加密。所以,我想做这样的事情:
deploy:
- provider: script
script: ./deploy.sh development
env:
-secure: <encrypted AWS_* variables for dev>
on:
branch: master
- provider: script
script: ./deploy.sh production
env:
-secure: <encrypted AWS_* variables for prod>
on:
branch: release
Run Code Online (Sandbox Code Playgroud)
但是,该env密钥只能在全局范围内使用。是否有可能以某种方式只为特定脚本指定环境而不是其他任何东西?
小智 0
您可以简单地在脚本标记中包含 env,例如,如此处所述。
包含加密环境时发生的所有变化是,您不是将环境设置为公共,而是通过travis encrypt MY_SECRET_ENV=super_secret --add(参考)或在 travis 环境中(例如通过接口)将它们加密添加到版本控制中。在你的情况下也许:
deploy:
- provider: script
script: env SUPER_SECRET_AWS_VARS=<encrypted AWS_* variables for dev> ./deploy.sh development
on:
branch: master
- provider: script
script: env SUPER_SECRET_AWS_VARS=<encrypted AWS_* variables for prod> ./deploy.sh production
on:
branch: release
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2358 次 |
| 最近记录: |