🙌
Github Actionsのトリガーパタン
公式ワークフローのトリガーのドキュメントも存在しますが、
個人的に読みにくかったので、メモとしてまとめることにしました。
トリガーとは
/.github/workflows/{NAME}.yamlファイルの
on
で始まるブロックで定義されてるコードのことを指します。
job.yaml
name: "Hello World Flow"
on:
issues:
types:
- opened
jobs:
sample:
...省略...
トリガーは、ワークフローの実行を引き起こすイベントです、主に次のようなイベントがあります。
イベント
push
- pushイベント時に自動実行、自動テストなどで主に使用します。
name: "Hello World Flow"
on:[push]
jobs:
sample:
...省略...
トリガーとなるブランチを指定するのも可能
name: "Hello World Flow"
on:
push:
branches:
- main
- 'releases/**'
jobs:
sample:
...省略...
トリガーとなるファイルパス指定も可能
name: "Hello World Flow"
on:
push:
paths:
- '**.js'
jobs:
sample:
...省略...
指定ブランチと指定パスを組み合わせることも可能
name: "Hello World Flow"
on:
push:
branchs:
- main
- 'release/**'
paths:
- '**.js'
jobs:
sample:
...省略...
tags指定
name: "Hello World Flow"
on:
push:
tags:
- v2
- v1.*
jobs:
sample:
...省略...
push_request
- テストの自動実行、本番やステージ向けリリースのための結合
name: "Hello World Flow"
on:[pull_request]
jobs:
sample:
...省略...
指定ブランチにプルリクエストする際に実行されることが多い
name: "Hello World Flow"
on:
pull_request:
branchs:
- main
- 'release/**'
jobs:
sample:
...省略...
時刻指定
schedule
cron形式で指定されたタイミングで定時実行、
テストや多少時間かかるjob実行に使われることが多い。
name: "Hello World Flow"
on:
schedule:
- cron: '* * * * *'
jobs:
sample:
...省略...
マニュアル実行
workflow_dispatch
- GitHubのWeb上から手動実行する
name: "Hello World Flow"
on:
workflow_dispatch:
ワークフロー依存
workflow_run
- 指定されたワークフローに依存して実行される、ワークフロー再利用したい場合が使われることが多い、ビルドはお案じワークフロー使って、リリースは別のワークフローにしたい場合など
name: "Hello World Flow"
on:
workflow_run:
workflows: ["Build"]
types: [requested]
branchs:
- releases/**
- types
- requested 指定ワークフロー要求時に実行
- completed 指定ワークフロー完了時に実行
Discussion