为了使gitlab-ci尽可能保持干燥,我做了这样的事情:
.apply:
stage: apply
script:
- echo "${TARGET_DEPLOY_PUBLIC}" > ssh/key.pub
- echo "${TARGET_DEPLOY_PRIVATE}" > ssh/key
environment:
name: $TARGET
when: manual
apply_prod:
extends: .apply
variables:
TARGET: "prod"
TARGET_DEPLOY_PUBLIC: "${PROD_DEPLOY_PUBLIC}"
TARGET_DEPLOY_PRIVATE: "${PROD_DEPLOY_PRIVATE}"
但是,如果$ {PROD_DEPLOY_PRIVATE}是受保护的Gitlab变量,那么我的ssh / key为空。我应该怎么做才能保护我的变量?
最终,我只想设置$ TARGET并输入以下内容:
TARGET_DEPLOY_PUBLIC: ${${TARGET^^}_DEPLOY_PRIVATE}