0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Actionsのデバッグに便利なactの使用方法まとめ

Posted at

はじめに

GitHub Actionsを使ったCI/CDフローの開発やデバッグを行う際、GitHubにプッシュするたびにワークフローを実行するのは手間がかかりますよね。
そんなときに便利なのが、GitHub Actionsをローカルで実行できるツール「act」です。
本記事では、actの基本的な使い方をご紹介したいと思います。

actとは

actは、GitHub Actionsのワークフローをローカルで実行できるコマンドラインツールです。
ローカルで事前にワークフローの動作を検証できるため、開発の効率を大きく向上させることができます。

actは仮想環境上にGitHub Actionsの環境を構築する仕組みになっているのでDockerを使用しますが、本記事でのDockerに関するご説明は省いております。
actをインストール前にDocker環境をご準備いただいてからお試しください。

インストール方法

以下のコマンドでインストール可能です(Homebrewの場合):

brew install act

その他のインストール方法については、公式リポジトリをご確認ください。
https://github.com/nektos/act

基本的な使い方

1. ワークフローを定義する

GitHub Actionsの通常の使い方と同様に、.github/workflows/配下にYAML形式のワークフロー定義ファイルを作成します。

# 例: .github/workflows/test.yml
name: Test

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run Tests
        run: echo "Running tests..."

2. actを実行する

基本の実行例

act

上記コマンドを実行すると、onで定義されたイベント(例: push)に応じて、該当のジョブが実行されます。


特定のイベントを明示的に指定して実行

act push

GitHubに実際にpushしたときと同じ挙動で実行されます。
他にも以下のように任意のイベント名を指定することができます。

act pull_request
act workflow_dispatch

特定のジョブだけを実行

act -j <ジョブ名>

ジョブ名はYAMLファイル内の jobs セクションのキーとして定義されている名前(例: build や test など)と一致させる必要があります。

例:

act -j build

Secretsを読み込んで実行

act --secret-file .secrets

.secretsファイルには、以下のように1行ずつ「KEY=VALUE」形式で記述します。

MY_SECRET=value123
API_KEY=abcdefg

Appleシリコン(M1/M2)環境での実行

Dockerのアーキテクチャを明示的に指定する必要がある場合があります。

act --container-architecture linux/amd64

ワークフローのイベント一覧を確認

act -l

定義済みのイベントと、それに対応するジョブの一覧を表示します。

注意点

  • 一部のGitHub公式ActionsがDocker上で動かない場合があります(例: actions/setup-nodeなど)。
  • runs-onの指定に応じたコンテナイメージが自動的に使われますが、必要に応じてカスタムイメージを指定することも可能です。

さいごに

本記事では、GitHub Actionsのワークフローをローカルで実行できるツール「act」の使い方についてご紹介しました。
CI/CDの構築やデバッグを効率的に行うための強力なツールなので、ぜひ活用してみてください。

なお、私自身も現在Webアプリ開発の真っ最中で、GitHub Actionsを利用する際にはactを使った検証にかなり助けられています。
今後もWeb開発に関するTipsをまとめていく予定ですので、興味があればまたご覧ください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?