GitHub Actions을 이용해서 시간 베이스로 자동 실행시키기
2020 10 2Tag : githup
어떤 프로그램을 작성해서, 일정한 시간에 자동으로 실행하게 만들기 위해서는 여러가지 방법이 있었다.
- google apps script를 이용해서 실행하기
- 집에 서버 설치해서 서버에서 일정 시간 받아와서 그 시간이 되면 지정된 프로그램을 실행하게 만들기
google apps script 를 사용하려면 아무래도 주로 사용하는 언어도 아니다보니 이래저래 제한이 생기고, 서버를 따로 설치한다는 건 지금으로는 관심도 별로 없는 쪽까지 손을 대야하니 너무 과도한 느낌이 있다.
그러던 중에 아주 우연히 GitHub의 Actions 기능을 이용하면 GitHub에 올라가있는 코드를 일정한 규칙에 의해서 실행시킬 수 있다는 것을 알게 되었다.
이걸 이용하면 주로 사용하는 언어를 사용할 수 있으면서도, 따로 서버를 설치한다거나 할 필요도 없어진다.
주의점
- GitHub Actions에는 여러가지 실행 방식이 존재하지만, 여기서는 다음 조건에 대해서만 한해서 설명한다.
- Python 스크립트
- 시간 기준 실행
작업 순서 (1)
GitHub에 프로그램 푸쉬
GitHub을 이용한 서비스이므로 사용할 프로그램은 GitHub에 푸시하자. 프로그램의 폴더 계층은 일단 최상층으로 한다.
Action 만들기
-
GitHub의 레포지토리 페이지에 있는 메뉴중 「Actions」를 선택한다.
-
파이썬 스크립트 하나를 실행시키는 정도라면, 위 스크린샷의 「Python application」으로 충분하다. 이걸 선택.
yml 파일
-
버튼을 누르면 텍스트 에디터가 나타난다. 다음 내용을 붙여넣는다.
-
일단 Start commit 버튼을 누른다.
yml 파일 수정
8행 : - cron: "* 10 1 11 *"
크론 표현식으로 어떤 일정으로 파이썬 스크립트를 실행시킬지 지정한다.
문법을 외우다기보다는 crontab.guru 에서 조정하는 것이 훨씬 편했다.
32행 : pip install bs4 requests
파이썬 스크립트에서 사용한 모듈 중에서 인스톨이 필요한 모듈을 지정한다.
33행 : - run: python sendCWMessage.py
실행하려는 파이썬 스크립트를 지정한다.
정리
간단한 스크립트의 실행만이라면, 몇가지의 수정만으로 편하게 시간 지정해서 실행이 가능해진다. 이런 건 적극적으로 써 줘야지.