はじめに
ある程度決まった時間とタイトルに書いてますが、例えば
「cron: '0 0 * * *'」 ← ※UTC時間で書く必要がある
と書いていても朝7時ジャストには動きません。
大体30分前後のラグがあります。
GitHub Actionsとは
GitHub ActionsはGitHubがサービスの一環として提供する、ワークフロー自動化サービスです。
一言でいうとGitにアップしているソースを、時間を指定して自動実行できます。
触ってみよう
GitにソースをアップしたらActionタブをクリック 検索窓にsimpleと入力し、「simple workflow」を選択します。こんな感じで雛形がでてきます。
以下サンプル
# ワークフロー名
name: test_chatbot
# 発火タイミング
# 日本時刻の朝7時に定期処理(分 時 日 月 曜日)
# UTC の 02:00 は JST だと 11:00 。
# 曜日指定には [0, 6] の整数を使います。 0 が日曜日、 6 が土曜日です。
# 実はgithub actionsのcronの時刻はUTCなので、日本時間に合わせるために日本時刻から9時間マイナスで設定する必要があります。
on:
schedule:
- cron: '0 0 * * *'
jobs:
build:
# Ubuntuの最新版環境内で処理を実行することを指定
runs-on: ubuntu-latest
# 実行する処理&コマンド指定
steps:
# リポジトリからチェックアウトして以下の処理を実行していく
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v1
with:
python-version: 3.9
- name: Install dependencies
run: |
# pip更新
python -m pip install --upgrade pip
# 必要なパッケージインストール
pip install line-bot-sdk
pip install schedule
pip install beautifulsoup4
- name: Run script
run: |
# main.pyの実行
python main.py
お好きな名前をどうぞ、、
# ワークフロー名
name: test_chatbot
実行したい日時を決めましょう。 指定の方法はcronと同じです。(UTCなので注意)
# 発火タイミング
# 日本時刻の朝7時に定期処理(分 時 日 月 曜日)
# UTC の 02:00 は JST だと 11:00 。
# 曜日指定には [0, 6] の整数を使います。 0 が日曜日、 6 が土曜日です。
# 実はgithub actionsのcronの時刻はUTCなので、日本時間に合わせるために日本時刻から9時間マイナスで設定する必要があります。
on:
schedule:
- cron: '0 0 * * *'
pythonで必要なパッケージをインストールするためにまずpipの更新 次にスクリプトで実行するために必要な外部パッケージをインストール
run: |
# pip更新
python -m pip install --upgrade pip
# 必要なパッケージインストール
pip install line-bot-sdk
pip install schedule
pip install beautifulsoup4
実行したいpythonファイル
run: |
# main.pyの実行
python main.py
編集が終わったら右上の「commit changes...」を押下して終了です。
記事を読んでくださった方は、是非弊社開発課のXもフォローしてね
毎日エンジニアに向けた情報発信を行っています
https://twitter.com/tech_cin