GitHub Action을 이용한 빌드 및 테스트 자동화 Anatomy

일단 이번 스프린트의 기준은 테스트를 직접 작성해서 통과시키냐 마냐인데.

node.js LTS 버전 install 부터 해줘야한다. 

노드 버전 매니저 명령어 nvm ls 커멘드를 입력하면, 지금 내가 사용하고 있는 노드들의 버전이 쭉 나온다.

위에서부터 구 버전이고, lts 최신버전은 제일 밑에 있는 lts/gallium 16.14.0 이 최신이다.(난 이걸 쓴다.)

git clone 해온 디렉토리 내에서

npm install 커맨드로 의존성 설치.

그리고 바로 npm run test를 실행하면 당연히 모두 불합격! 수정을 안했자나

test 디렉토리에 app.test.js 파일을 보면

FILL_ME_IN이라고 되어있는곳에 우리가 채워 넣어야한다.

  1. 1 + 1 = 2
  2. 100 + 200 = 300
  3. ‘Hello World!’ (must be wrapped in quotes)
  4. ‘CODESTATES’
  5. ‘codestates

이렇게 수정을 완료하고! 저장하고! 이제는 npm run test 통과할거다

역시 깔끔하게 4패쓰 뜬다

노드 버전지정은 nvm use 16.14.0 커멘드로 하고

2번을 해야하는데, 일단 github 들어가본다.

내가 포크해온 디렉토리 내에서 Add file을 누른다. 그리고 Create new file이 있는데, 누른다.

그리고 여기에 경로 설정을 해줘야한다.

이 경로는 어디에서 찾을 수 있을까?

Actions에 들어간다. 그리고 new workflow를 누른다.

그러면 이렇게 템플릿들이 쭉 있다.(매우 편하게도)

캡쳐는 하나만 하지만, 템플릿 하나하나 다 들어가보면,

(내가 fork 해온 Repo이름)/.github/workflows/(yml파일 이름) 이런식으로 지정되어있는것을 알 수 있다.

그리고 다시 Code에 들어가서 create newfile을 누르고 이 화면! 아까 봤던 경로를 수동으로 써주면된다.

/를 쓰면 자동으로 구분이 된다. 똑똑하네

그리고 나는 이렇게 템플릿과 같은 경로를 썼다. 이제 밑에 yml파일의 내용을 써야하는데 막막하다.

https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs-or-python

난 이 링크의 내용을 참고했다.

각 라인들에대해서 해석도 해주는 친절한 자료다.

이해는 나중에 하기로하고 일단 오른쪽 Copy to clipboard 를 누른다.

그리고 여기에 붙여넣어준다!

하지만 example을 수정하지않고 쓸수는 없는거다.

 

on:

  push:

  branches: [ main ] 이라고 되어있는 부분이 보일거다.

이부분을 수정할건데, 아까 위에 우리가 적은 경로 옆에 [ master ] 가 버젓히 써져있다.

그래서 [ main ] → [ master ] 수정해줄거다.

그리고

strategy:

  matrix:

    node-version: [10.x, 12.x, 14.x, 15.x] 

node-version 부분을 [16.x] 로 수정하면 된다

 

이렇게 잘 넣었으면, 이제 밑에 쭉 내려서

Commit new file을 눌러준다

(밑에 빨간색만 있는거 기준)

그러면 초록불이 한번에 뜰 줄 알았는데!.. 아니다.

github에서 메일도 하나 받는다. 실패하면

왜냐하면 내가 test 자동화를 지금 해놓은건데 바꾼 test파일을 Push안해서 그런거다.

다시 터미널로 가서 push를 해야한다.

하지만 github에서 내가 직접만든 yml파일은 내 로컬 디렉토리에 들어가있지 않기 때문에 Push가 안된다.

그래서 git pull 부터 해서 yml파일을 받는다

그 이후로는

git add .

git commit -m ‘(메세지)’

git push

이렇게 쭉쭉 실행하면 올라간다.

그리고 Actions에 들어가면 초록불이 드디어 떳다.

클릭해서 들어가면 세부 test항목들이 뜨는데 오류가 뜨더라도 이걸 보면서 수정하기 쉽지 않을까.

crowss-nest  xMerge branch 'master' of github.com:crowss-nest/sprint-mini-no 옆에 초록색 체크표시가 떠있는것을 확인할 수 있다.

테스트 통과했다는거 ㅎ

이렇게 테스트 자동화 스프린트 마친다.

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Bootcamp/Sprint review 다른 글

    이전 글

    다음 글