52
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHubActionsで定期実行

Last updated at Posted at 2021-07-03

はじめに

「SlackBOT」や「LINEBOT」を作すると、それを使用するために定期実行したくなります。
定期実行するとなるとどんなツールを思い浮かべますか?

「cron」、「heroku」、「GCP」...など色々ありますよね。

僕自身上記の3つを使ったことがありますが、設定がめんどくさかったり、うまくいかなかった経験があります。

「もっと簡単に定期実行できたらいいのに...」と悩んでいた時に見つけました!

それは「GitHubActions」です。

この記事では「GitHubActions」で定期実行する手順を紹介していきます。

めちゃくちゃ簡単にできるので一度やってみてください!

それではいきましょう!

*この記事ではPythonメインに説明しているのでご了承ください。(Python知らなくても問題はないです。)

GitHubとは?

そもそも「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 使い方」などでググってみてください。

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」を使ってみてください!

それでは!

52
43
2

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
52
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?