깃허브의 액션 기능(git action)를 사용해보자

JIHUN KIM
6 min readSep 3, 2019

--

이미지:tenor.com

얼마전 github에서 자체적으로 Action이라는 (c.i) 기능을 제공하기 시작했습니다.

이미지:tenor.com

이제 Travis-ci / Circle-ci를 안쓰고(ㅋㅋㅋㅋㅋ) 깃허브내에서 테스트 또는 빌드를 쉽게 하고 결과를 진단받을 수 있게 되었습니다
(물론test & build & release 뿐만 아니라 할수 있는게 더 무궁무진하죠..)

자 그럼 간단한 파이선 프로젝트를 Github에 생성을 한 후 테스트 코드를 작성해서 Action 이라는 기능을 활용해 보겠습니다.

git repo를 먼저 만들어줍니다.

.
├── README.md
└── test_actions.py

그리고 test_actions.py 파일을 생성하고 내부에 아래와 같은 간단한 테스트 코드를 작성해줍니다.

   def test_smoke_test():
assert 1 == 1, "반드시 같아야죠 ~ "

위 처럼 간단한 테스트 함수를 선업합니다.
그 다음 테스트를 위해서 pytestpip을 이용해서 설치해줍니다.

pip install pytest 

pytest를 인스톨 한 후 루트(root) 디렉토리에서 python -m pytest -s -v 를 입력하면 아래와 같이 테스트를 통과 할 것입니다.

========= test session starts ==========
platform darwin -- Python 3.7.4, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 --
test_actions.py::test_smoke_test PASSED===1 passed in 0.01s ===

아무 무리없이 테스트가 PASS 를 했다면

pip freeze > requirements.txt 명령어를 사용해서 의존성 패키지들을 root 디랙토리(dir)export를 합니다.

git add .
git commit -m "First Commit"
git push origin master

master 브랜치에 push를 해줍니다.(python 코드를 git repo에 먼저 푸시하게되면 파이선 프로젝트인 것으로 인식하기때문)

자~ 그럼 로컬이 아닌 github action을 사용하기위해
앞에서 생성한 github 페이지로 돌아간후 상단의 Action을 클릭합니다..

그림의 Set up this workflow를 클릭합니다.

셋업을 누르게되면 아래와 같은 화면이 나오는데, 한번 초록색 버튼을 누르고 바로바로 따라가봅니다.

start commit 버튼을 누르게되면 아래와 같이 commit message 를 입력할수 있습니다. 자유 양식으로 입력을 해주고 다시 start commit 을 눌러줍니다.

start commit 을 계속 누르다 보면 아래와 같은 화면이 나오게됩니다.
황색? 마크가 있는데, 이 마크를 클릭을 해볼 수 있습니다.

클릭을 해서 확인해보면 아까전 pythonpackage.yml 파일 내부에 삽입된 빌드 스크립트가 돌고 있습니다.

Fail이 났군요...

침착하게 로그를 확인해보면python2를 사용해서 생긴 문제 인것 같습니다.(듀토리얼 환경은 현재 로컬에서 python3를 사용중입니다.)
적절하게 pythonpackage.yml 파일을 수정해줍니다.
경로는 루트디렉토리 .github/workflows/pythonpackage.yml 입니다.

아래 코드 부분에서 python-version: [2.7, 3.5, 3.6, 3.7] 으로 된 부분을
python-version: [3.5, 3.6, 3.7] 으로 변경해줍니다.

│ File: .github/workflows/pythonpackage.yml
───────┼────────────────────────────────────────────────────────────
1 │ name: Python package
2 │
3 │ on: [push]
4 │
5 │ jobs:
6 │ build:
7 │
8 │ runs-on: ubuntu-latest
9 │ strategy:
10 │ max-parallel: 4
11 │ matrix:
12 │ python-version: [2.7, 3.5, 3.6, 3.7]
13 │

변경사항이 생겼으니. 다시 깃을 수정하고 푸쉬를 해줍니다.

git add .
git commit -m “Second commit”
git push origin master

다시 action으로 가서 결과를 확인해봅니다!

자 이렇게 모든 작업들이 PASS 했습니다.

이번에는 github 자체 c.i 를 사용해서 python3 테스트 코드를 돌려보았습니다.
아래 링크를 통해서 위에서 사용한 샘플 소스를 참조 하실 수 있습니다.
감사합니다.

참고 깃허브링크:
https://github.com/elastic7327/action-test

--

--

JIHUN KIM

개발자를위한 교육플랫폼 알프캠퍼스를 만들고있습니다! https://github.com/leopard627