얼마전 github에서 자체적으로 Action
이라는 (c.i) 기능을 제공하기 시작했습니다.
이제 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, "반드시 같아야죠 ~ "
위 처럼 간단한 테스트 함수를 선업합니다.
그 다음 테스트를 위해서 pytest
를 pip
을 이용해서 설치해줍니다.
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 테스트 코드를 돌려보았습니다.
아래 링크를 통해서 위에서 사용한 샘플 소스를 참조 하실 수 있습니다.
감사합니다.