GitHub Actionsのワークフローファイルをざっくり理解する

· 1086 words · 3 minute read

はじめに 🔗

GitHub Actionsを目にする機会が増え、興味があったのでtutorialをやってみました。
そのときに学んだワークフローファイルについてざっくりとまとめました。

なんとなくわかった気になることを目的に書いたので、細かい部分に関しては言及していません。
GitHub Actionsを触ったことがない方のドキュメントを読むきっかけになれば幸いです。

ファイル内の構成 🔗

ワークフローファイルは以下の要素からできています。
詳細を知りたい場合は公式のドキュメントで確認できます。

  • ワークフロー
    ファイル内に定義されている内容のこと

  • ランナー
    GitHub Actionsのワークフローからジョブを実行するアプリケーションのこと
    どの仮想環境で実行するかを指定することができる

  • イベント
    ワークフローが実行されるタイミングのこと
    どのタイミングでワークフローを実行するかを指定することができる
    指定できるタイミング一覧

  • ジョブ
    同一のランナーで実行される一連のステップのこと
    複数のジョブは並列で実行される

  • ステップ
    ジョブ内の個々のアクションまたはシェルコマンドのこと
    ステップには作成済みのアクションかシェルコマンドが指定される

  • アクション
    何らかの処理が設定されているもの
    公開されているアクションを使用することで簡単にやりたいことが実現できる

実際のワークフローファイル 🔗

試しに公開されているアクションを使用して、リリース用のPRを作成するワークフローを作成してみました。
今回のファイルではシェルコマンドを使う箇所がなく使用していないのですが、ステップでアクションではなくシェルコマンドを使うこともできます。

name: Create a release pull-request # ワークフローの名前を指定
on: workflow_dispatch # どのタイミングで実行されるか

jobs: # 以下にジョブを定義
  release_pull_request: # ジョブの名前を指定
    runs-on: ubuntu-latest # どのランナーで実行するか指定
    name: release_pull_request
    steps: # 以下にステップを定義
      - name: checkout # ステップの名前を指定
        uses: actions/checkout@v2 # 使用するアクションを指定
      - name: create-release-pr
        uses: grassedge/git-pr-release-action@v1.0
        with: # 以下でアクションに与えるパラメータを指定 (何が使えるかはアクションのドキュメントを確認)
          base: main
          head: develop
          token: ${{ secrets.GITHUB_TOKEN }}
          labels: release
          assign: true

合わせて公式のドキュメントにある「ワークフローファイルの視覚化」を見ていただけると、イメージがつきやすいと思います。

おわりに 🔗

複雑な記述を書かずに自動化できるのが良いと思いました。 まだ基本的なことしか試すことができていないので、他にも公開されているアクションを試してみようと思いました。

publicリポジトリであれば無料で試すことができるので、まだ試したことがなければぜひ試してみてください。 最後まで読んでいただきありがとうございました!

参考にしたサイト 🔗