개요
이걸로 뭔가 할 수 있을 것 같은데, 당장은 못하겠고 언젠간 하려고 기록
Actions의 Event Trigger
저번 커밋시간 기록하는 I'm Early..? 를 작업하고 나서, 이건 어떻게 해서 자동화를 시킨거지...? 라는 생각이 들었습니다. 코드를 좀 구경하니 workflow를 이용해서 한 것 같더라구요. 이런 자동화툴 배워보고 싶었는데, 지금 간단히 찾아서 기록해보고, 나중에 이 관련해서 크롤러 자동화..? 라도 도전해보려구요.
이 글은 테스팅이나 실행은 다음에 미뤄두고, 실행의 자동화만 다루겠습니다.
이 글은 github doc의 actions 가이드를 해석하며 진행했습니다.
workflow Event
on : 구문을 사용해서 Event를 구성할 수 있어요. ':' 이하가 조건을 의미하고 on은 실행한다 라는 동작을 의미한다고 생각 할 수 있겠네요.
on: push
위와 같이 적으면 push가 발생할 때 workflow를 실행됩니다.
이런 방식말고 여러 동작을 list로 묶어서도 사용할 수 있습니다.
on: [push, pull_request]
이렇게 중괄호로 묶어주면 여러 동작을 함께 조건으로 사용할 수 있어요.
하지만, 추가 event를 지정해주려면, 분리해서 작성해야합니다.
on:
push:
branches:
- main
pull_request:
branches:
- main
event를 실행 trigger를 main branch로 제한하겠다고 해석할 수 있겠네요.
이 때, 어떤 event가 추가 event가 필요하지 않더라도 나누어서 적어주어야 합니다.
on:
push:
pull_request:
branches:
- main
Scheduled Event
schedule : 이벤트를 사용하면 지정된 시간마다 반복실행하게 만들 수 있습니다. 저희가 찾던 내용이라 할 수 있겠네요.
이 이벤트는 POSIX cron 구문을 사용하여 특정 UTC시간에 실행되도록 예약할 수 있습니다.
단, 구문 상으로 1분마다 반복되는 event를 구성할 수 있지만, github actions에서 지원하는 최소 간격은 5분이라고 합니다.
테스트 해봤는데 1분 간격으로 하니 5분간격으로도 안해주네요. 5분 이상부터 쓰도록 합시다.
이 cron 구문은 공백으로 구분된 5개의 field가 있으며, 각 field는 시간 단위를 나타냅니다.
┌───────────── 분 (0 - 59)
│ ┌───────────── 시 (0 - 23)
│ │ ┌───────────── 날짜 (1 - 31)
│ │ │ ┌───────────── 달 (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── 요일 (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *
이 field에는 아래의 5개의 연산자를 사용할 수 있습니다.
연산자 | 기능 | 예시 |
* | 모든 값 | 0 * * * * 매 시 0분 마다 실행 |
, | and | 20, 50 0,12 * * * 0시 12시 20분과 50분에 실행 |
- | 범위 | 0 0 5-20 * * 5일에서 20일 사이 자정에 실행 |
/ | - 마다 | */15 * * * * 15분 마다 실행 20-45/15 * * * * 20분 부터 45분까지 15분마다 실행 (20, 35) |
크롤러 자동화하는데 딱 어울리는 기능이네요. 여름에 편의점 크롤러 만들 때 알았다면 참 좋았을 기능...
이외 Maual과 Webhook을 이용해서 할 수 있는데, 다음 글에 이어 쓰겠습니다.
'기타' 카테고리의 다른 글
Docker Hub 무제한 종료?? (0) | 2020.11.04 |
---|---|
Happy Halloween! / 호박밭? 시든 잔디밭? (0) | 2020.10.31 |
I'm a night?? I'm a early?? (2) | 2020.10.21 |
LeetCode with Python / 12. Integer to Roman (0) | 2020.10.20 |
Arctic Code Vault Contributor? 넌 누구냐..! (0) | 2020.07.18 |
댓글