fel*_*cst 3 deployment bash continuous-integration continuous-deployment circleci
我试图根据当前的$ CIRCLE_BRANCH为CircleCI上的环境变量设置不同的值。我尝试在CircleCI设置中设置两个不同的值,并在部署阶段将它们相应地导出,但这是行不通的:
deployment:
release:
branch: master
commands:
...
- export API_URL=$RELEASE_API_URL; npm run build
...
staging:
branch: develop
commands:
...
- export API_URL=$STAGING_API_URL; npm run build
...
Run Code Online (Sandbox Code Playgroud)
我该如何实现?
提前致谢。
现在的问题将近2年了,但是最近我正在寻找类似的解决方案,但我找到了。
它指的是CircleCI的称为上下文的功能(https://circleci.com/docs/2.0/contexts/)。多亏了上下文,您可以创建多组环境变量,这些变量在整个组织内都可用。然后,您可以根据工作流程的filters属性动态加载其中之一。
让我通过以下示例进行演示:
假设您有两个分支,并且希望将每个分支部署到不同的服务器中。您要做的是:
创建两个上下文(例如prod-ctx和dev-ctx),并SERVER_URL在每个上下文中定义环境变量。您需要登录CircleCI仪表板,然后转到“设置”->“上下文”。
在您.circleci/config.yml定义作业的模板中并调用它deploy:
deploy: &deploy
steps:
- ...
Run Code Online (Sandbox Code Playgroud)
workflows:
version: 2
deploy:
jobs:
- deploy-dev:
context: dev-ctx
filters:
branches:
only:
- develop
- deploy-prod:
context: prod-ctx
filters:
branches:
only:
- master
Run Code Online (Sandbox Code Playgroud)
deploy-prod和deploy-dev它将使用deploy模板:jobs:
deploy-dev:
<<: *deploy
deploy-prod:
<<: *deploy
Run Code Online (Sandbox Code Playgroud)
以上步骤将创建两个作业,并根据filters条件运行它们。此外,每个作业都会获得不同的环境变量集,但是部署的逻辑保持不变,并且仅定义一次。因此,我们获得了不同分支的动态环境变量值。
小智 7
在我的项目中,我使用 bash 脚本将其存档。
例如,这是我的circle.yml:
machine:
node:
version: 6.9.5
dependencies:
override:
- yarn install
compile:
override:
- chmod -x compile.sh
- bash ./compile.sh
Run Code Online (Sandbox Code Playgroud)
这是我的 compile.sh
#!/bin/bash
if [ "${CIRCLE_BRANCH}" == "development" ]
then
export NODE_ENV=development
export MONGODB_URI=${DEVELOPMENT_DB}
npm run build
elif [ "${CIRCLE_BRANCH}" == "staging" ]
then
export NODE_ENV=staging
export MONGODB_URI=${STAGING_DB}
npm run build
elif [ "${CIRCLE_BRANCH}" == "master" ]
then
export NODE_ENV=production
export MONGODB_URI=${PRODUCTION_DB}
npm run build
else
export NODE_ENV=development
export MONGODB_URI=${DEVELOPMENT_DB}
npm run build
fi
echo "Sucessfull build for environment: ${NODE_ENV}"
exit 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2067 次 |
| 最近记录: |