【GitHubActions】workflow_dispatchとcronのサンプル
はじめに
GitHub Actionsは、ビルド、テスト、およびデプロイメント パイプラインを自動化できる継続的インテグレーションおよび継続的デリバリープラットフォームです。
基本的にGitHub上で動いてくれるので、Jenkinsなどのように自前のサーバを用意してワークフロー等を実行する必要がないところが嬉しいです(学習コスト的にも)
ワークフローとは
GitHub Actionsのワークフローは、ソフトウェア開発ライフサイクルタスク(SDLC)を自動化するためにリポジトリに設定するプロセス(?)です。
このワークフローを使用すると、いろんなプロジェクトをビルド、テスト、パッケージリリース、およびデプロイできます。
ワークフローの記述スタイルとしては、YAMLで書けるようになっています。
本記事では
本記事では、ワークフローを実行するにあたっての使用することのできるトリガー(workflow_dispatch, cron)について書いてみます。
workflow_dispatch(手動実行が可能)をトリガーとするワークフロー
下記は、ワークフローを手動で実行する際のファイル。
URLからアクセスし、Manual Hello Echo
を押下し、Run Workflow
を選択して実行をするとワークフローが動作するはずです。
できなかったら、自分ので試してみてください。
name: Manual Hello Echo
on:
workflow_dispatch: # 手動実行のトリガー
jobs:
say-hello:
runs-on: ubuntu-latest
steps:
- name: Echo Hello
run: echo "hello"
- workflow_dispatch イベントを使用して手動実行可能に
- 単純に "hello" という文字列をecho
URL:https://github.com/yyoosshh/sandbox-githubactions/actions
cron(定期実行)をトリガーとするワークフロー
下記は、毎時0分に echo を実行するワークフローです。
name: Hourly Time Echo
on:
schedule:
- cron: '0 * * * *' # 毎時0分に実行
jobs:
echo-time:
runs-on: ubuntu-latest
steps:
- name: Get current time
run: echo "Current time is $(date)"
- schedule イベントを使用して、cron式で毎時0分に実行されるように設定
- date コマンドを使用して現在時刻を出力
ワークフローが配置されているレポジトリ
こちらのレポジトリに上述したワークフローが配置されており、cronは定期実行されています。
URL:https://github.com/yyoosshh/sandbox-githubactions/actions/workflows/cron-workflow.yaml
Discussion