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?

【GitHubActions】ローカル実行する方法

Posted at

GitHub Actions: ワークフローをローカルで実行する方法

はじめに

GitHub Actionsのワークフローをサーバー上で実行するたびにコミットするのは面倒な作業です(スキルが発展途上のためやりがち...)
この記事では、actを使用してワークフローをローカルで実行する方法を紹介します。

準備

actを使用するにはDockerが必要です。
まず、Dockerが稼働していることを確認しましょう。

最近私は colima を利用してDockerを稼働させています。

actのインストールは、さまざまなパッケージマネージャを通じて行うことができます(詳細はこちら)。
インストール後、初回起動時に使用するDockerイメージを選択するように求められます。イメージには軽量なもの(例: node:16-buster-slim)から大型のもの(18GB以上)まであります。作業内容に応じて適切なイメージを選びましょう。

実行手順

  1. ワークフローの一覧表示
    コマンドプロンプトでリポジトリを開き、以下のコマンドを使用してワークフローとジョブのトリガーを確認します:

    $ act pull_request -l
    
  2. ドライランの実行
    ワークフローを実行する前に、ドライランを行って問題をチェックできます:

    $ act pull_request -n
    
  3. ワークフローの実行
    ドライランが問題なければ、以下のコマンドで実際にワークフローを実行します:

    $ act pull_request
    

    ワークフローの結果は、GitHub上での実行結果と同様になります。

仕組み

actはDockerコンテナを使用してワークフローをローカルで実行することは前述しました。
.github/workflows/ディレクトリ内のGitHub Actionsを読み込み、必要なアクションを特定します。
Docker APIを利用して必要なイメージを取得または構築し、実行経路を決定した後、各アクションに対応するコンテナを実行します。

ワークフローでGITHUB_TOKENを使用している場合、個人用アクセストークン(PAT)を提供する必要がありますが、GitHub CLIを使用してトークンを自動的に取得することも可能です。

さらに詳しく

actの課題の一つは、デフォルトのGitHubホストランナーのイメージが非常に大きいことです。しかし、ほとんどのワークフローではそれほど多くのツールを必要としません。
カスタムDockerイメージを使用することで、ローカルとサーバーでの実行環境をほぼ一致させることができます。詳細はこちらをご覧ください。

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?