個人開発で何かを効率化できるようにしたいためGithub Actionsを使って作業を楽したい…
目次
Github Actionsとは
リポジトリの中でトリガー(イベント)を元に様々なアクションを実行することができる機能です。PRの自動マージやなどをあらゆる面倒くさい作業を自動化できます。
全体図(公式から)

Workflow:イベントをきっかけに実行される一連の処理の定義ファイル(.ymlファイル)
Event:pushした時などのWorkflowを開始するきっかけとなるトリガー
Runner:GitHubのサーバー上でJobを実行するための仮想マシン
Job:Runner上で順に実行される1つ以上の処理のまとまり
Action:特定の処理をするシェルスクリプト(Action = Step)
Workflow作成の流れ
GitHub Actionsではymlファイルを利用してワークフローを作成する必要があります

配置場所:.github/workflows
ymlファイルの編集ではVSCodeを利用

公式のプラグインがあり構文の補完、エラーチェックをしてくれます。
Marketplaceにてテンプレートを検索してプロジェクトにあったものをすぐに追加できます

GitHubは常に.github/workflowsディレクトリを監視しているためymlファイルが追加されればActionsに自動で表示されます。

どのブランチで実行されたか、どれくらい前に実行されたかなど確認できます。
下記を設定するとActionsで確認時に見やすくなります。
name: Actions上での名前を設定(ワークフローの名前)
run-name: 実行ログ一覧に出る名前(カスタムログとして分かりやすくするべき)
SummaryではJobの実行状況を確認することができます

JobsをタップするとJobのステップと実行が確認できる

右上のRe-run all jobsやRe-run failed jobsで再実行できます
Workflow fileでは定義したymlファイルを確認することができます
Workflowの構成要素について

・branchesなどはイベントに対して条件を指定するもの
・typesなどはアクティビティのタイプを指定するもの(Docsを確認)

・usesは既存のアクションを利用することができる(@actionsはGitHub公式)
・runで実行したいシェルコマンドを実行
・needsを指定すると指定のjob完了後に実行できる
needsを利用しない

needsを利用

よく使われそうなもの
- if:で条件指定することができる(jobやstepに対して利用できる)
- with:でアクションに渡す引数を指定できる(usersの後に定義)
- id:で各ステップに一意の識別子を設定できる
- outputs:でjob間で値を渡すことができる
- env:で環境変数などをyml内で定義できる(Github上で)
- secrets.キー名で事前にGitHubのSettingsから設定したシークレットキーを利用できる
id:とoutputs:を利用した場合
