Чтобы сделать мой 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}