반응형
배포 과정에서 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 }}
이부분도 추가해보자

잘 작동된다.
반응형
'etc' 카테고리의 다른 글
[FCM] node.js fcm 알림 지연 누락 현상, 우선순위 설정 (0) | 2024.11.28 |
---|---|
[Flutter/Dart] dart의 기본적인 구조, UI가 그려지는 과정 정리 (0) | 2024.11.26 |
안드로이드 스튜디오, Flutter _key.jks, key.properties 위치 관련 (0) | 2024.11.23 |
[github/discord] 깃 헙 디스코드 웹 훅 연결 / github discord Webhooks / 400 error (0) | 2024.06.12 |
[Firebase] Firebase Hosting Setup Complete 만 출력되는 상황 (0) | 2023.12.30 |