Magicode logo
Magicode
4 min read

GitHubActionsで定期実行

https://cdn.apollon.ai/media/notebox/blob_UX5eH2S

はじめに

「SlackBOT」や「LINEBOT」を作すると、それを使用するために定期実行したくなります。 定期実行するとなるとどんなツールを思い浮かべますか?
「cron」、「heroku」、「GCP」...など色々ありますよね。
僕自身上記の3つを使ったことがありますが、設定がめんどくさかったり、うまくいかなかった経験があります。
「もっと簡単に定期実行できたらいいのに...」と悩んでいた時に見つけました!
それは「GitHubActions」です。
この記事では「GitHubActions」で定期実行する手順を紹介していきます。
めちゃくちゃ簡単にできるので一度やってみてください!
それではいきましょう!
*この記事ではPythonメインに説明しているのでご了承ください。(Python知らなくても問題はないです。)

GitHubとは?

そもそも「GitHub」とはなんぞや?という方は下の記事を参考にしてください!

GItHubActionsを使ってみる

では早速「GItHubActions」を使ってみましょう!
Screen Shot 2021-07-03 at 15.16.02.png
まずは定期実行したい「GitHub」リポジトリにアクセスして「Actions」という部分をクリックしてください。
「Set up this workflow」を押してください。
Screen Shot 2021-07-03 at 15.17.49.png
そうすると上の画像のような画面が出てきます。
ここで定期実行する設定ができます。

設定

ただパッとみてもよくみても何をしているのかさっぱりだと思います。
なので上の画像のコードを消して、下のコードをコピペしてください。
# ワークフロー名
name: housework_bot
on:
  schedule:
    # 定期実行する時間・・・①
    - cron: '0 22 * * *'

jobs:
  build:
    # Ubuntuの最新版環境内で処理を実行することを指定
    runs-on: ubuntu-latest

    # 実行する処理&コマンド指定
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.8
        uses: actions/setup-python@v1
        with:
          python-version: 3.8
      - name: Install dependencies
        run: |
          # pip更新
          python -m pip install --upgrade pip
          # 必要なパッケージインストール・・・②
          
      - name: Run script
        run: |
          # 定期実行するファイルを指定。・・・③
          python 定期実行するファイル
上記のコードで編集が必要な部分を説明していきます。

定期実行する時間・・・①

ここで定期実行する時間を指定することができます。
ここではcronを使用します。
cronの時間設定についてわからない方は以下の記事を参考にするか「cron 使い方」などでググってみてください。
ここで注意点があります。
それはタイムゾーンの仕様で9時間引く必要があります。
どういうことかというと、毎日8時に定期実行したい場合「0 8 * * *」ではなく「8 - 9 = 23(夜11時)」つまり「「0 23 * * *」とする必要があります。
この点に注意しながら設定してみてください。
複数「cron」を設定したい方は以下のように指定してください。
- cron: '0 22 * * *'
- cron: '0 1 * * *'
- cron: '0 4 * * *'
- cron: '0 6 * * *'

必要なパッケージインストール・・・②

ここで必要なパッケージをインストールできます。
Pythonを使用している場合は、以下のように必要なパッケージのインストールコマンドを入力してください。
pip install numpy
pip install pandas
.
.
.
余分なものをインストールすると時間がかかるので注意してください。

定期実行するファイルを指定。・・・③

ここで定期実行するファイルを指定します。
Pythonならば「python main.py」のようにしてください。
(他の言語の場合は適切なものに変更してください。)

ファイルの実行

では先ほど設定したファイルを実行しましょう。
Screen Shot 2021-07-03 at 15.46.00.png
上の赤枠部分でファイル名を自由に指定して、右の赤枠の「Commit changes」をクリックしてください。
これでファイルの実行は完了です。
設定した時間に先ほどのyamlファイル内で指定したファイルを実行してくれます。
もしcommitした時に確認の意味を込めて実行されるようにしたい場合は、画像の左赤枠の「# push」を「push」としてください。
「Commit changes」をクリックした時に実行されるので確認してみてください。

注意事項

設定した時間ぴったりに実行されない場合があります。
具体的には5, 6分ずれる可能性があるのでご注意ください。

最後に

今回は「GitHubActions」を使って定期実行する方法を見てきました。
どうだったでしょうか?
結構簡単だったのではないでしょうか?
もし定期実行したい場合は一度「GitHubActions」を使ってみてください!
それでは!

Discussion

コメントにはログインが必要です。