Github Actions 시작하기 #2 커스텀 액션 만들기, 깃허브 패키지 레지스트리 등록하기

Explanation

지난 글에 이어서 오늘은 Github Actions에서 아주아주 간단하게 직접 action을 만들어서 그걸 가져다가 사용해보고
직접 만들어 본 action을 Github Package Registry에 등록하는 것까지 적어보려 합니다.

예제 코드는 아래와 같습니다.
https://github.com/falsy/github-custom-actions
https://github.com/falsy/github-actions-quickstart-2

그리고 제가 참고한 글은 아래와 같습니다. 아래 글이 훠~얼~씬 잘 설명되어 있는거 같아요.
함께 보시길 추천합니다.
https://blog.outsider.ne.kr/1415
https://coffeewhale.com/cicd/github/2019/10/14/github-actions/
https://help.github.com/en/actions/automating-your-workflow-with-github-actions/configuring-a-workflow

1. Custom Actions 레파지토리 만들기

저는 ‘github-custom-actions’ 라는 이름으로 Github에 레파지토리를 만들었어요.
그리고 그 안에는 아래와 같이 간단한 3개의 파일로 되어 있습니다.

여기서 잠시 Dockerfile에서 ENTRYPOINT와 CMD의 차이를 알아두고 넘어가면 좋을 거 같아요.
아주 간단하게 이야기하면 CMD는 이후 컨테이너를 실행할때 인자값을 주었을때 변경되어 실행될 수 있고
ENTRYPOINT는 Dockerfile에서 지정한 명령만 수행한답니다.
참고. https://bluese05.tistory.com/77

저와 같이 쉘스크립트가 익숙하지 않으시다면, ‘#!/bin/sh’ 부분은 아래의 링크를 참고하시면 좋을 거 같습니다.
참고. https://storycompiler.tistory.com/101

위와 같이 3개의 파일로 된 액션 레파지토리를 만들었습니다.

2. Custom Actions 사용하기

이제 앞에 만든 Custom Actions을 사용해보기 위해 저는 ‘github-actions-quickstart-2’라는 레파지토리를 하나 만들었어요.
대충 전체적으로 코드는 저번 글의 ‘github-actions-quickstart-1’와 똑같고 .github/workflows/nodjs.yml 파일만 수정해봤어요.

뭔가 저번에 쓰던거 복붙해서 썼더니 nodejs 안쓰는데 이름이 Node CI네요.. (쉿..)

사실 저번글에서 많이 지워지고, 중요한 부분은 ‘uses’ 부분이겠죠?
앞에 falsy는 제 깃허브 이름이고 뒤에는 조금 전에 만들었던 레파지토리의 이름이에요.

그리고 Push를 하고 Actions 탭을 확인해 볼까요?

짜잔 ‘잘 보면 Hello World’가 출력된 걸 볼 수 있답니다.

3. 깃허브 패키지 레지스트리 등록하기 #1 토큰 발급

우선은 Docker를 사용해야하니 Docker를 설치되어 있어야 한답니다. 이전에 썼던 도커 설치 글을 참고할 수 있을 거 같아요.
https://falsy.me/docker를-설치하고-간단하게-nginx-node-서버를-배포해봅니다/

우선은 깃허브에서 프로필 아이콘을 누르고 ‘Settings’로 이동합니다.

왼쪽 메뉴에서 ‘Developer settings’ 로 이동한 후 ‘Personal access tokens’ 로 가서 ‘Generate new token’을 눌러 토큰을 만들어 줍니다.
권한으로는 read:packages, repo, write:packages 가 필요하다고 해요.
참고. https://coffeewhale.com/cicd/github/2019/10/14/github-actions/

token을 만들면 ‘069606298e62fb…’ 대충 이렇게 생긴 값이 생성되는데 요걸을 복사해주세요.

3. 깃허브 패키지 레지스트리 등록하기 #2 Docker 로그인

그리고 터미널을 열고 아까 처음에 만들었던 github-custom-actions 디렉토리로 이동해 줍니다.

위 경로는 그냥 저의 경로에요..

그리고 docker 로그인을 합니다.

여기에서 ‘falsy’ 부분에 사용하시는 github 이름을 그리고 -p 다음에 아까 만들었던 token을 넣어주면 되요.

3. 깃허브 패키지 레지스트리 등록하기 #2 Docker 빌드 및 배포

빌드하여 이미지를 만듭니다. 위에 -t 다음은 태그 이름이고 맨 뒤에 .은 디렉토리 패스 값이에요.

빌드한 이미지에 태그를 등록하고

이제 푸시하면 끝~

깃허브 레파지토리에 가보면 package에 1이 생긴 걸 볼 수 있습니다.

뒤로 갈수록 설명이 심플해진 느낌이 없지 않지만… 시간이 너무 늦어 피곤한 관계로…