はじめに
RubyやTypeScript,Goを学んできましたが、言語ばかりを勉強してきたためCI/CDやインフラ周りの知識・技術が欠けているなと感じました。
その取り掛かりとしてGitHub Actionsについて勉強したので、その単語集を作りました。(随時更新・修正予定)
GitHub Actionsとは
そもそもGitHub Actionsとは何なのでしょうか。GitHub ActionsとはGitHubが提供しているワークフロー自動化サービスです。
仕組みとしては以下のようになっております。
- Workflow(ワークフロー)はJob(ジョブ)単位で分けられている
- JobはRunner(ランナー)という仮想マシンのインスタンス上で実行される
- JobはさらにStep単位で分けられており、Step内にコマンドなどの処理が実行される
サンプルコード
.github/workflow/workflow.yml
name: First Workflow
on: [push]
jobs:
run-shell-commands:
runs-on: ubuntu-latest
steps:
- name: echo a string
run: echo "Hello World"
- name: Multiline Command
run: |
node -v
npm -v
説明
-
name: First Workflow
: ここではワークフローの名前を定義しています。今回はFirst Workflow
という名前をつけています -
on: [push]
: ここではどのタイミングでワークフローを走らせるのか定義しています。今回はpush
を指定しており、pushしたら実行するように定義しています。他にもpull_requestやissueなども指定することができます。
また、次のようにしてbranchを指定することもできます。
on:
push:
branches: [ "main" ]
-
jobs
: ここではワークフローにの中に含まれる一連の処理を定義します。 -
run-shell-commands
: こちらはジョブの名前になります。任意でつけることができます。 -
runs-on: ubuntu-latest
: ここではどのような仮想環境でジョブの処理を実行するのか指定します。今回はUbuntuの最新版を指定しています。 -
steps
: ワークフローの具体的な処理を書いています。-
name
: ステップの名前を指定しています。 -
run
: 具体的な処理を記載しています。
-