-
GitActions에서 Environment secrets 사용해보기Devops/CICD 2022. 9. 13. 09:37
gitactions에서 secret ket를 주입하는 방법은 settings -> Secrets-> Actions에서 Repository secret key를 추가하면 됩니다.
하지만, 개발환경별로 주입하려면 Secret Key이름에 환경이 들어가서 ci/cd의 yml파일이 지저분해집니다.
언젠가부터 github에 Environments가 settings에 생기면서 Deployment branch role을 지정해서 특정 환경에서만 주입할 수 있는 기능이 생겼습니다. 즉, 환경변수 네이밍이 기존에 DB_HOST_DEV, DB_HOST_STAGE.. 이런식이 였다면, DB_HOST하나로 환경별로 사용할 수 있게 됩니다.
Environments Secret이 적용된 예 위 사진을 보시면 dev라는 Environments에 DB_HOST가 있는것을 볼 수 있습니다. 또한, Repository secrets에 DB_HOST도 있습니다. 이렇게 되면, ci/cd에서 secret key를 가져올 때, jobs에 environment에 추가해준 값 (dev)를 설정해주면 secret key를 가져올 때, 우선적으로 Environment secrets에서 가져오게됩니다. 없다면 Repository secrets key에서 가져옵니다.
jobs: deploy-dev: name: deploy-dev environment: dev ... // 여기는 secrets는 environment가 dev인 secret key와 repository secret key를 갖음 ... deploy-main: name: deploy-main enviromnet: main ...
가져오는 순서는 다음과 같습니다.
- jobs에 environment가 있으면 여기에 해당하는 environmet secret key
- Repository secrets
이 environment secrets을 사용하게되면, 장점으로는
- secret key의 네이밍을 환경별로 나눌 필요 없다. (yml파일이 단순해 진다.)
- yml파일에서 job의 environment를 명시했기 때문에 변수가 정확하게 들어옴을 확정지을 수 있다.
가 되겠습니다.