들어가기 전에
Github Actions
는 Github에서 제공하는 CI/CD 서비스로, 코드를 빌드하고 테스트하며 배포하는 일련의 과정을 자동화할 수 있습니다.
Github Actions를 사용하면 코드 변경 사항이 발생할 때마다 자동으로 테스트하고 배포할 수 있어, 개발자들이 더 효율적으로 협업할 수 있습니다.
Secrets
는 Github Actions에서 사용하는 환경 변수로, Github 저장소에 노출되지 않도록 안전하게 관리할 수 있습니다.
Secrets를 사용하면 API 키, 패스워드 등 민감한 정보를 코드에 직접 노출하지 않고, 안전하게 관리할 수 있습니다.
Github Actions 설정
먼저 Github Actions를 설정해보겠습니다.
-
Github 저장소로 이동한 후, 상단 메뉴의
Actions
를 클릭합니다. -
Set up this workflow
버튼을 클릭하여 새로운 Workflow를 생성합니다. -
.github/workflows
폴더에main.yml
파일을 생성합니다. (next.js 프로젝트라면 보통build.yml
로 생성합니다.) -
다음과 같이 Workflow를 설정합니다. (예시)
name
: Workflow의 이름을 설정합니다.on
: Workflow가 실행될 조건을 설정합니다. 여기서는main
브랜치에 push될 때 실행되도록 설정했습니다.jobs
: Workflow의 작업을 설정합니다.runs-on
: 작업이 실행될 환경을 설정합니다. 여기서는ubuntu-latest
로 설정했습니다.steps
: 작업의 단계를 설정합니다.uses
: 사용할 Action을 설정합니다. 여기서는actions/checkout@v2
를 사용하여 코드를 체크아웃했습니다.run
: 실행할 명령어를 설정합니다. 여기서는npm install
,npm run build
등을 실행했습니다.- 주의 :
yml
파일은 줄마다 들여쓰기를 해야 합니다. 들여쓰기가 잘못되면 Workflow가 동작하지 않을 수 있습니다.
참고로 현재는 Deploy에 관한 내용이 없습니다. 또한 아주 간단한 구조에 대한 예시이므로, 실제 프로젝트에 맞게 수정하셔야 합니다.
-
설정이 완료되면
Start commit
버튼을 클릭하여 커밋합니다. -
Actions
탭으로 이동하여 Workflow가 정상적으로 동작하는지 확인합니다.
이제 Github Actions를 설정했습니다.
Build Fail
이전 글에서 .env
를 사용하여 Firebase 서비스 계정 키를 관리했습니다.
하지만 .env
파일은 local에서만 사용되는 환경 변수 파일이므로, Github Actions에서는 사용할 수 없습니다.
그래서 Build가 실패하게 됩니다.
Secrets 설정
이제 Secrets를 설정해보겠습니다.
-
Github 저장소로 이동한 후, 상단 메뉴의
Settings
를 클릭합니다. -
좌측 메뉴에서
Secrets and variables
내Actions
를 클릭합니다. -
New repository secret
버튼을 클릭하여 새로운 Secret을 추가합니다. -
Name
에 환경변수를 입력하고,Value
에 Firebase 서비스 계정 키를 입력합니다. (Github Actions는NEXT_PUBLIC_
을 붙일 필요가 없습니다.) -
Add secret
버튼을 클릭하여 Secret을 추가합니다.
이제 Secrets를 설정했습니다.
Secrets 사용하기
이제 Workflow에서 Secrets를 사용해보겠습니다.
위와 같이 steps
에 Secrets
를 사용할 환경 변수를 설정하면, Workflow에서 Secrets를 사용할 수 있습니다.