일을 시작 하기 전에 먼저 깃헙을 확인한다.
pull requests 를 확인한 다음
closed 를 보면 내가 이전의 작업을 끝내면서 어떤 메모를 남겼는지 확인 할 수 있다.
이런 작업들이 남아있다.
계속해서 branch를 확인하고 추적하는 작업이 상당히 귀찮다.
그럴때는 zsh를 이용해주도록 하는데 VScode는 어떤 쉘을 이용해서 작업을 시작할지 프로필에서 정해줄 수 있다.
터미널을 열고 왼쪽 위에 있는 저 부분을 설정해 주면 간단하게 기본 쉘을 zsh로 바꿔줄 수 있다.
zsh와 oh-my-zsh 를 이용해서 현재 브랜치가 어디인지 나타내주는 테마를 적용했다.
테마 적용에 어려움이 있는 경우 VScode zsh 깨짐 등을 검색하면 해결할 수 있다.
VScode 가 설치되어있는 로컬에서 해결해야하는 문제이므로
필요하지 않은 경우 애꿎은 컨테이너를 헤집지는 않길 바란다.
아무튼 gitignore를 변경하는 브랜치를 만들고 들어왔다.
코드와 꼭 필요한 파일이 아니면 올라가지 않도록 했다.
역시 merge 까지 해준다.
브랜치를 삭제해도 되고 나중에 또 수정할 수 있겠다 싶으면 삭제하지 않아도 된다.
과거의 내가 시킨 또다른 일을 해보자.
github action을 통해서 code coverage를 자동으로 측정하는 CI 기능을 추가하는 작업이다.
coverage report 를 작성하도록 하는 일련의 과정을 yaml에 담고
작업의 이름을 Coverage Report 라고 한다
push가 실행되면 이 작업이 동작해야하며
jobs 에 등록된 작업들을 실행하되
coverage-report는 이하 작성된 steps에 해당하는 순서로 작업을 진행한다.
코드 검사를 마친 후에
파이썬을 설치하고
coverage를 이용해서 모든 *_test.py 를 찾아내서 검사한다.
그리고 code climate 라는 유용한 툴을 이용하려고 하는데 그러기 위해서는
리포지토리를 연결하고 ID를 받아와야 한다.
구글에 codeclimate 를 검색하면 홈페이지로 갈 수 있고
오른쪽 상단에서 quality 를 선택 한 후 repo를 연결한다.
그리고 위에 보이는 탭에서 ID 를 받을 수 있고 이 ID를 github action을 위한 yaml 파일에 넣어준다.
보면 정상적으로 실행이 된 것 처럼 보이지만 사실 action으로 검사된 항목이 하나도 없다.
yaml 파일에서 오타가 난 모양이다.
action 탭으로 가보면 역시 어떤 오류가 발생했는지 바로 볼 수 있다.
uses라고 해야하는데 use로 적은 라인이 있었다.
고쳐주도록 한다.
pull requests 에서 요 똥색 라인이 추가되면 성공한 것이다.
실패했다고 나온다.
옆에 details 를 누르면 어디가 실패한 것인가 잘 알 수 있다.
coverage 가 없기 때문에 실행을 못했다고 한다.
github action은 동작이 이뤄지는 순간 빈 컴퓨터를 하나 할당받고
그 컴퓨터에서 원하는 동작을 수행한다.
따라서 지금 action이 동작하는 컴퓨터는 당연히 coverage가 없다.
coverage를 설치하는 구문도 추가할 겸 requirements.txt 를 만들어보자.
터미널에서 지금 내 pip에 저장된 모든 패키지와 모듈 그리고 버전을 출력하는 것이 가능하다.
이 내용을 고대로 requirements.txt로 넣고 저장한다.
그러면 어마 무시한 내용이 쭉 적혀있을것인데 내가 원하는 내용만 남기고 모두 지워주면 된다.
깎아내고 보니 이것밖에 안남았다.
torch는 공홈 다운로드를 잘 보면 해당 링크로 타고 들어가서 다운받도록 되어있기 때문에
pip의 저장소에서 가져오려고 하면 에러가 발생한다.
따라서 공홈에서 알려주는 링크를 find-links로 명시해 주고
이하 그 링크에서 받을 수 있는 내용들을 적어주면 잘 찾아준다.
이제 requirements.txt 가 있으면 pip를 통해서 동일한 버전을 다운로드 받도록 명령을 넣어준다.
run 이하는 쉘스크립트의 문법을 따르므로 if와 fi 사이에서 원하는 동작을 수행할 수 있다.
아까와는 다른게 All checks have passed 라는 신나는 문구가 같이 뜨는 것을 볼 수 있다.
codeclimate에도 잘 연동되었는데 아직 coverage를 다 채우려면 한참 멀었다는 것을 알 수 있다.
코드를 엉망으로 짜 뒀으니 maintainability도 형편없다.
이제 이것을 끌어올리는 방향으로 작업하는 것이 하나의 큰 축이 된다.
'Backend MLOps > MyTemplate' 카테고리의 다른 글
[DLTemplate] #4 trainer 정리 -3 kfold (0) | 2021.09.27 |
---|---|
[DLTemplate] #4 trainer 정리 -2 model (0) | 2021.09.27 |
[DLTemplate] #4 trainer 정리 (0) | 2021.09.23 |
[DLTemplate] #2 모듈의 패키지화 (0) | 2021.09.21 |
[DLTemplate] #1 딥러닝 템플릿 만들기 시작 (0) | 2021.09.20 |
댓글