이번 글에서는 Github Actions
에서 NodeJS
애플리케이션을 실행할때 환경변수를 설정하는 방법을 알아보도록 하겠습니다.
이전의 이야기..
Github Actions에 NodeJS 환경변수를 설정하게 된 계기를 설명하는 입니다. 시간이 없으신 분은 다음 섹션부터 읽으시면 됩니다
이 글을 작성하게된 배경은 급식 알리미
를 만들어 보자는 욕심부터 시작되었습니다.
어느날 점심시간 30분전쯤 오늘 급식 뭐지?
라는 생각에 학교의 급식을 알려주는 사이트를 통해 급식을 찾아봤습니다. 그러다 문득 매일 점심시간 30분전쯤 급식을 확인하는 저를 발견할 수 있었습니다.
아, 그냥 내가 굳이 찾아보지 않아도 급식정보가가 알아서 찾아와줬으면 좋겠다라는 생각에 급식을 특정한 시간에 자동으로 알려주는 서비스?를 생각하게되었습니다.
가장 비용 없이 운영할 수 있는 방법을 생각한게 Github Actions
의 스케줄을 통해 특정 시간에 급식정보를 메일로 알려주는 방식이었습니다.
이때 Github Actions
에 나이스 API 키
와 같은 정보를 환경변수에서 받아오기위해 설정이 필요했습니다.
Github Secrets
Github Actions를 설정할 저장소의 Settings > Secrets > New repository secret
로 들어갑니다.
위와 같이 KEY
와 VALUE
를 작성합니다.
Node 환경변수
위 Secrets
는 그저 Actions
에서 접근할 수 있도록만 설정된 값입니다. NodeJS
의 환경변수로는 따로 등록해줘야합니다.
npm run start
와 같이 NodeJS 애플리케이션을 실행하는 run
과 함께 env
를 작성해줍니다.
- name: Run Mailing
run: npm run start
env:
NEIS_KEY: ${{ secrets.NEIS_KEY }}
OFFICE_CODE: ${{ secrets.OFFICE_CODE }}
SCHOOL_CODE: ${{ secrets.SCHOOL_CODE }}
GOOGLE_EMAIL: ${{ secrets.GOOGLE_EMAIL }}
GOOGLE_PW: ${{ secrets.GOOGLE_PW }}
위와 같이 사용할 환경변수의 키와 값을 넣어주면 됩니다. 이때 값은 Github Secrets
를 사용하기에 ${{ secrets.KEY }}
와 같이 위에서 설정한 값에 접근합니다.
아래는 제가 직접 설정한 yml
파일입니다.
프로젝트는 타입스크립트 환경에서 작성되었습니다.
name: Send Dish Mail
on:
schedule:
- cron: "15 2 * * *"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: Install Dependencies
run: npm install
- name: Build Typescript
run: npm run build
- name: Run Mailing
run: npm run start
env:
NEIS_KEY: ${{ secrets.NEIS_KEY }}
OFFICE_CODE: ${{ secrets.OFFICE_CODE }}
SCHOOL_CODE: ${{ secrets.SCHOOL_CODE }}
GOOGLE_EMAIL: ${{ secrets.GOOGLE_EMAIL }}
GOOGLE_PW: ${{ secrets.GOOGLE_PW }}
결과
Github Actions를 통해 매일 급식을 받아볼 수 있게 되었습니다 ㅎㅎ..
'개발 > 백엔드' 카테고리의 다른 글
클린 아키텍처 with Spring Boot (2) | 2021.05.08 |
---|---|
Spring과 NodeJS 선택 기준 (0) | 2021.04.22 |
[NestJS] Docker를 이용한 배포 (6) | 2021.02.18 |
[NestJS] Service Unit 테스트 (Mongoose, Repository 패턴) (0) | 2021.02.16 |