Front-End

[Github, 배포] Github Actions으로 환경변수(.env) 관리하기

madylin 2024. 5. 12. 16:25
반응형

웹프로젝트에서 필요한 key 들을 .env 파일에 저장하고, 접근하도록 적용해두었다.

 

그러나 .env 파일은 보안을 위해 github 에 올리지 않는 파일인데, 배포 때는 어떻게 되는거지? 하는 의문이 생겼고, 백엔드 팀원이 github actions에 secrets 로 환경변수를 관리하는 방식을 알려주어, 공부하며 기록해둔다.

Github Actions 란?

Github에서 제공하는 CI(Continuos Integration, 지속통합)와 CD(Continuous Deployment, 지속배포)를 위한 서비스이다.

Github Actions 은 특정 이벤트가 발생했을 때, 특정 작업이 일어나게 하거나, 주기적으로 특정 작업을 반복해서 실행시킬 수 있는 자동화 툴이다. 예를 들어 main 브랜치에 코드가 push 되었을 때, 자동으로 코드를 테스트하고 문제가 없다면 배포까지 진행하는 등의 자동화가 가능하다.

이런 자동화 해놓은 작업 과정을 워크플로우(Workflow) 라고 한다. 워크플로우는 .github/workflows 폴더 아래에 yml 파일로 설정할 수 있고, 한 코드 저장소에 여러 개의 워크플로우를 설정할 수 있다.

Github Secrets

API key 나 Password 와 같은 값을 해당 화면에 등록해두면, Github Actions 에서 Secrets 에 접근하여 .env 파일을 생성하도록 설정된 워크플로우를 통해 원하던 대로 환경변수에 접근할 수 있게 된다.

1. 해당 Github repository의 settings > Security > Secrets and variables > Actions 메뉴로 접속한다.

 

2. ‘New repository secret’ 버튼을 눌러, 사용하고자 하는 변수를 생성한다. Name 에 변수명, Secret 에 key 나 password 값을 입력하고 ‘Add secret’ 버튼을 클릭한다.

내 경우에는 Name 에 ‘DOCKER_ENV’, Secret 에 필요한 환경변수들을 입력했다.

 

 

3. 저장된 값을 워크플로우에서 접근할 수 있도록, yml 파일을 작성해준다. 위에서 저장한 secret은 “${{secrets.Name}}” 으로 접근할 수 있다.

내 경우에는 run (실행할 구문)에 touch로 .env 파일을 만들고 , echo 로 위에서 저장한 secret을 .env 파일에 삽입하도록 했다.

 

//main.yml

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Make Docker Env
        run : |
          touch ./.env
          echo "${{ secrets.DOCKER_ENV }}" > ./.env

 

 

이렇게 설정 끝!

main에 push 되면 이 워크플로우가 동작할 예정이다. 문제가 있다면 이후에 내용 추가해두겠다!

 

 

 

출처

https://www.daleseo.com/github-actions-basics/

 

GitHub Actions의 소개와 핵심 개념

Engineering Blog by Dale Seo

www.daleseo.com

https://velog.io/@2ast/Github-Github-actions%EC%97%90%EC%84%9C-Secrets%EB%A1%9C-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0

반응형