如何在gitlab-ci.yaml中设置环境变量?

时间:2019-03-18 18:43:22

标签: continuous-integration gitlab devops continuous-deployment gitlab-ci-runner

我的gitlab ci-cd配置文件使用了许多env变量。要设置它们,我使用gitlab ci-cd秘密变量。

例如,dev deploy-part:

- echo "====== Deploy to dev server ======"
# Add target server`s secret key
- apk add git openssh bash
- mkdir ~/.ssh
- echo $DEV_SERVER_SECRET_KEY_BASE_64 | base64 -d > ~/.ssh/id_rsa
- chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
- echo "Test ssh connection for"
- echo "$DEV_SERVER_USER@$DEV_SERVER_HOST"
- ssh -o StrictHostKeyChecking=no -T "$DEV_SERVER_USER@$DEV_SERVER_HOST"
# Delploy
- echo "Setup target server directories"
- TARGET_SERVER_HOST=$DEV_SERVER_HOST TARGET_SERVER_USER=$DEV_SERVER_USER TARGET_SERVER_APP_FOLDER=$DEV_SERVER_APP_FOLDER pm2 deploy pm2.config.js dev setup 2>&1 || true
- echo "make deploy"
- TARGET_SERVER_HOST=$DEV_SERVER_HOST TARGET_SERVER_USER=$DEV_SERVER_USER TARGET_SERVER_APP_FOLDER=$DEV_SERVER_APP_FOLDER pm2 deploy pm2.config.js dev

我在项目中有5个存储库和3台服务器(dev,preprod,prod)。因此,我必须管理许多变量。使用gitlab ci-cd秘密变量来管理所有它们,这很痛苦。我看不到它,更改它-仅删除和创建。我同意将其用于ssh秘密密钥,但不适用于指定文件夹,主机等的名称。

还有其他方法可以为ci-cd脚本提供变量吗?

0 个答案:

没有答案