Github ActionsでGolangのプログラムを定期実行させてみました。
この記事を読むことで、Goのプログラムを定期実行させられるようになります。
目次
定期実行するGolangプログラムを準備する
main.go
を用意します。
package main import ( "log" ) func main() { log.Println("run main.") }
「run main」とログ出力するだけのプログラムです。
workflowsを準備する
リポジトリ内に.github/workflows
という名前でディレクトリを作成し 、以下のようなymlファイルを配置します。
on: schedule: - cron: '*/5 * * * *' jobs: run: name: run runs-on: ubuntu-latest steps: - name: Set Up uses: actions/setup-go@v2 with: go-version: 1.19 - name: Checkout uses: actions/checkout@v2 - name: Run run: go run main.go
ymlファイルの概要
on
プログラムを実行するトリガを設定します。
- schedule : 定期実行の間隔を指定できます。
分(00-59) 時(0-23) 日(1-31) 月(1-12) 曜日(0-6)
の順で設定します。
以下の*/5
などのようにすると「5分ごとに」という設定ができます。
schedule: // 9時から21時の間に5分間隔で実行 - cron: "*/5 0-12 * * *"
その他のよく使うトリガ
- push : プッシュ時
- deployment : デプロイ時
- pull_request : プルリクエストアクションが行われた時
- release : リリースアクションが行われた時
jobs
実行するジョブを指定します。複数指定可能で、実行順序の指定もできるらしいです。
ジョブは仮想環境でインスタンスで実行されます。
name
ジョブ名
runs-on
ジョブのランナー
steps
アクションの集合。
同一ジョブのstepsは同一の仮想環境で実行される。
アクション
ジョブが実行する処理。
コマンド実行や公開アクションの実行ができる。
おわりに
簡単な定期実行を試してみました。
github actionsで色んなことしてみたいです。
https://docs.github.com/ja/actions