7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JOBをある程度決まった時間に実行【GitHub Actions】

Posted at

はじめに

ある程度決まった時間とタイトルに書いてますが、例えば
「cron: '0 0 * * *'」 ← ※UTC時間で書く必要がある
と書いていても朝7時ジャストには動きません。
大体30分前後のラグがあります。

GitHub Actionsとは

GitHub ActionsはGitHubがサービスの一環として提供する、ワークフロー自動化サービスです。
一言でいうとGitにアップしているソースを、時間を指定して自動実行できます。

触ってみよう

GitにソースをアップしたらActionタブをクリック 検索窓にsimpleと入力し、「simple workflow」を選択します。1754924d-9806-5d6f-eb79-388753079afd.pngこんな感じで雛形がでてきます。
a9b05bed-2ba1-9a58-66d0-ad21ad1ae4a3.png
以下サンプル

# ワークフロー名
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

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?