GitHub Action을 이용한 빌드 및 테스트 자동화
1. 유닛 테스트를 통과시키세요.
먼저 테스트 주도 개발을 연습합니다. 직접 test/app.test.js를 수정하여 통과하지 않는 테스트를 모두 통과시키세요.
- 애플리케이션은 node.js로 작성되어 있습니다. node.js LTS 버전을 준비합니다.
- 먼저 애플리케이션의 의존성(dependency)을 설치해야 합니다. npm install 명령을 이용해 의존성을 설치합니다.
- 테스트가 통과하는지 확인하려면 npm test 명령을 이용합니다. 다음과 같이 테스트가 통과하지 않는 것을 먼저 확인하세요.
2. GitHub Action을 이용해서 Node.js CI를 적용하세요.
- node 버전은 16 버전으로 반드시 지정해야 합니다.
- 다음 상황에서 GitHub Action이 트리거되어야 합니다.
- master로 push 했을 경우
- pull request를 보낸 경우
- Pull Request로 제출하세요.
Getting Started
- node.js 프로그램의 테스트를 위해서는 npm test 명령어를 CI, 즉 GitHub Action 상에서 자동으로 실행해줘야 합니다.
- 먼저 공식 문서를 통해 GitHub Action의 사용방법을 알아봅시다.
- Actions 탭을 클릭하여 workflow가 제대로 작동했는지를 확인해봅시다.
- 레퍼런스를 참고하여 GitHub Action Node.js workflow를 만들고, 테스트가 통과하는지 확인하세요.
우선 먼저 app.test.js 파일부터 수정해 test를 통과 시켜 보겠다.


처음에 딱 봤을 때 이걸 어떻게 하라는거지 싶었지만 천천히 보니 (1+1).to.be.equal(FILL_ME_IN) 값을 보니 어? 그냥 2를 넣으면 되는거 아닌가 싶어 넣어보니 테스트를 통과했고 그 뒤부터는 쉽게 쉽게 채워 나갔다.
그 후 포크한 곳에 푸쉬한 후 github.action을 이용할 차례였다.

포크한 레포지에서 깃허브 액션으로 들어가보니 workflow를 고르는 창이 떴고 node.js를 골랐다.

이렇게 yaml 파일을 다 작성해주었고 여기서 16버전으로 지정하라 했으니 [12.x, 14.x, 16.x]에서 16.x만 남기고 다 지우고 start commit을 누르니 알아서 빌드와 테스트를 하고 성공했다.
여기서 On: 이 부분은 트리거로 workflow가 작동하는 조건? 그런 느낌이다. 위에서는 push 나 pull request를 할 시 작동하게 되있고
jobs: build: runs-on : ubuntu-latest가 되어있는데 이거는 간단히 가상컴을 우분투로 하나 여는것이며 여기안에서 테스트가 작동하는 것이다.
나머지는 읽어보면 알 수있다.
환경 변수
운영체제 혹은 소프트웨어가, 각기 다른 컴퓨터 또는 사용자마다 별도로 가질 수 있는 고유한 정보를 담는데 사용하는 변수를 특별히 환경 변수라고 한다.
환경 변수의 필요성
배포되는 기능마다 설정이 달라질 수 있기 때문이다
- 새로운 배포마다, 새로운 기능들을 배포하게 됨으로써 설정값이 바뀌게 된다.
- 따라서 코드의 버전을 관리하는 것처럼 설정값의 버전을 관리할 필요가 있다.
설정은 왜 환경변수를 통하여 분리해야 할까?
- 환경 변수는 코드 변경 없이 배포 때마다 쉽게 변경할 수 있다.
- 설정 파일과 달리, 잘못해서 코드 저장소에 올라갈 가능성도 작다.
- 다른 설정 메커니즘과 달리 언어나 OS에 의존하지 않는다.
- 레퍼런스
환경 변수 설정 예
- Linux 운영체제: export 명령어 -> 해당 블로그
- 코드를 통해 환경 변수를 설정 하는 법
- node.js → process.env
- 서비스 내에서 환경 변수를 설정하는 법
- GitHub Action
'TIL' 카테고리의 다른 글
| 35일차 배포 자동화 (0) | 2022.06.03 |
|---|---|
| 34일차 지속적 통합 && 배포 자동화 (0) | 2022.06.02 |
| 32일차 지속적 통합 (0) | 2022.05.30 |
| 31일차 yaml (0) | 2022.05.30 |
| 30일차 docker, yaml (0) | 2022.05.30 |