CI\CD/GitHub Actions

[GitHub Actions] 테스트, 릴리즈 환경 별로 다른 Secrets 설정하는 방법 알아보기

반응형

환경 별로 다른 값을 전달하는 것이 중요한 이유

환경 별로 다른 값이 필요한 이유는 환경 별로 아이디/비밀번호 혹은 DB 이름 등이 다를 수 있기 때문이다. 실제로 많은 앱들은 테스트용 환경과 릴리즈 환경을 나누어 놓는데 이는 보안에 매우 중요하다.

 

이 문제를 해결하기 위해 GitHub Actions는 같은 Key로 Secrets에 접근한다고 하더라도 환경 별로 다른 값을 전달할 수 있는 기능을 제공한다. 이 글에서는 바로 환경 별로 다른 Secrets 를 전달하는 방법에 알아볼 것이다.

 

환경별로 다른 Secrets 생성하기

환경 별로 다른 Secrets를 생성하기 위해서는 GitHub의 Environment 기능을 설정해야 한다. Environment는 Settings-Environments 에 위치한다.

* 참고로 GitHub의 Environment 기능은 Pro 모드부터 제공한다. 

 

 

Environment 생성하기

Environment 를 생성하기 위해서는 오른쪽 위의 New environment 버튼을 클릭한다. 그러면 아래와 같은 화면이 나온다.

 

 

이름에 Test라고 설정하고 Configure environment 버튼을 눌러 Environment를 생성한다.

 

Environment에 Secrets 생성하기

그러면 다음과 같은 화면이 나온다. Environment에 Secrets를 생성하기 위해서는 아래쪽에 있는 Add secret 버튼을 클릭하자

 

 

그러면 아래와 같은 화면이 나온다. 우리는 이에 대해 TOKEN을 설정할 것이다. 방금 생성한 environment는 test 환경이기 때문에 test-token을 값에 입력하고 Add secret 버튼을 누른다.

 

 

그러면 Environment secrets에 TOKEN이 생성되었다고 나온다.

 

 

환경별로 Secrets 조회하기

환경 별로 다른 Secrets를 조회하기 위해서는 환경에 environment: [Environment 명] 을 설정해주면 된다. 위에서 Environment 이름을 Test로 설정해주었으므로 environment: Test 로 설정한다. 이후  secrets.TOKEN을 통해 해당 environment의 variable에 접근한다.

name: Environment - Secrets

on: workflow_dispatch

jobs:
  secrets:
    environment: Test
    runs-on: ubuntu-latest

    steps:
      - name: Access Secrets
        run: |
          echo "Secret Token : ${{ secrets.TOKEN }}"

 

그러면 아래와 같이 secrets.TOKEN에 잘 접근되는 것을 확인할 수 있다. 

*조회가 안되면 빈칸이 나온다.

 

반응형

 

이 글의 저작권은 Dev World 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.