Github Actionsについて、公式ドキュメントを読んで学んだことをまとめる。
Github Actionsとは
リポジトリに特定のイベントが発生した際に、特定の処理を実行できる仕組み。
例えばissueが作成された時にラベルを付与したりできる。
Github Actionsのコンポーネント
以下のコンポーネントから成る。
ワークフロー
1つ以上のジョブを実行するプロセス。
ワークフローはYAMLファイルで定義される。
リポジトリの.github/workflows
ディレクトリ以下にYAMLファイルを配置し、YAMLファイルで指定されているイベントが発生した際に、ワークフローが実行される。
ジョブ
1つ以上のスクリプトないしアクションから構成されるまとまった処理。
ジョブは既定では並列に実行される。
依存関係を設定した場合、前のジョブが完了してから後続のジョブを実行することもできる。
同じワークフロー内であればジョブ間でデータを受け渡すこともできる。
ランナー
ワークフローが実行される仮想環境。
ステップ
実行されるコマンド。
シェルコマンドなどが記述される。
予め定義された一覧の処理を実行する「アクション」の指定も可能。
例えば、リポジトリの内容をチェックアウトするactions/checkout
など。
実際に試したコード
.github/workflow/github-actions-test.yml
name: Github Actions Test #ワークフローの名称
run-name: test-action #アクションログに表示される名称
on: #ワークフローが実行される条件を以下に記載
workflow_dispatch: #手動で実行された時
jobs: #ジョブの定義
test-job: #ジョブ名称
runs-on: ubuntu-latest #実行環境の指定
steps: #実行されるコマンドの指定
- name: Step1 #ステップの名前
run: whoami #実行するコマンドを記述
- name: Step2
run: pwd
checkout:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4 #アクションを指定する場合はusesを使用する
- name: ls directory
run: ls ${{github.workspace}}