etc

[git] git actions에서 .env, secrets, 환경 변수 사용하기

냐옹멍멍 2024. 6. 12. 21:17
반응형

 

배포 과정에서 yaml파일이 어떤식으로 동작하는지 정확히 알지는 못하지만

환경 변수 관련 이슈가 있었어서 기록하려한다.

 

일단 내 프로젝트는 기본적으로 firebase cli를 통해 배포했기 때문에 git에 배포세팅이 되어있다.


 

로컬에서 주로 쓰는 .env는 일반적으로 ignore 하기 때문에,

우리가 코드에서 작성한 process.env.~~ 같은 환경 변수는 깃에 올린 순간 값을 알 수없다.

 

그래서 github의 actions에서 읽을 수 있게 secrets에 작성해야된다.

 

만약 .env에

 
     NEXT_PUBLIC_KAKAO_API_KEY="value"
 

 

이렇게 작성했다면

 

Name이 변수 이름, Secret이 value이다.

 

시크릿 작성이 끝나고 배포 과정에 포함시키려면

아래 처럼 작성한다.

name: Deploy to Firebase Hosting on merge
on:
  push:
    branches:
      - dev
jobs:
  build_and_deploy:
    runs-on: ubuntu-latest
    environment: firebase-deploy
    env:
      NEXT_PUBLIC_KAKAO_API_KEY: ${{ secrets.NEXT_PUBLIC_KAKAO_API_KEY }}
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build
      - uses: FirebaseExtended/action-hosting-deploy@v0
        with:
          repoToken: ${{ secrets.GITHUB_TOKEN }}
          firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_PROJECT_NAME }}
          channelId: live
          projectId: PROJECT_NAME
      - name: create .env
        run: |
          echo "NEXT_PUBLIC_KAKAO_API_KEY=${{ secrets.NEXT_PUBLIC_KAKAO_API_KEY }}" >> .env

 

      - name: create .env
        run: |
          echo "NEXT_PUBLIC_KAKAO_API_KEY=${{ secrets.NEXT_PUBLIC_KAKAO_API_KEY }}" >> .env

 

'create .env' 라는 이름의 step을 추가한다.

 

스탭 내용은 보면 얼추 알겠지만 변수 선언이다.

yaml문법은 잘 몰라 설명하지 않겠다. 

 

만약 이것만 추가해서 안된다면 상단에

    env:
      NEXT_PUBLIC_KAKAO_API_KEY: ${{ secrets.NEXT_PUBLIC_KAKAO_API_KEY }}

 

이부분도 추가해보자

 

잘 작동된다. 

반응형