Bash の代わりに PHP で run のコードを書く [GitHub Actions]

6398 ワード

概要

GitHub Actions は基本的に run または uses でステップを書いていきます。
run には Bash でコードを書くわけですが実は shell を指定することで他の言語も使えます。
Bash の代わりに他の言語(例として PHP)で run のコードを書く方法を紹介します。

run の仕組み

ACTIONS_STEP_DEBUG を有効にして実行ログを眺めていると分かるのですが一時的なスクリプトのファイルに出力されてそのファイルが実行されています。

Bash
steps:
  - run: gh --version

を実行すると d8a24915-0c60-4866-a347-89e62bf14836.sh に出力されて実行されます。

shell を指定

shell のドキュメントには bash, pwsh, python, sh, cmd, powrshell が使えると書いてあります。
Linux と macOS では bash が、 Windows では powershell がデフォルトです。

Python
steps:
  - name: Display the path
    run: |
      import os
      print(os.environ['PATH'])
    shell: python

カスタムシェル

さて本題です。
shell のドキュメントの下の方に カスタムシェル という項目があります。
ランナーにインストールされているコマンドであれば shellcommand […options] {0} [..more_options] という形式で実行コマンドを書くことができます。
{0}run の仕組み で説明した一時的なスクリプトのファイル名に置き換わります。

Perl
steps:
  - name: Display the environment variables and their values
    run: print %ENV
    shell: perl {0}

Bash のとき (デフォルトの shell: bash) も同じ形で実行されています。

使用できるコマンド

ランナーにインストールされているコマンドであれば何でも実行できます。
ubuntu-20.04 であれば PHP, Node.js, Java, .NET, Ruby, Swift など様々なコマンドがインストールされています。
詳細は GitHub-hosted ランナーのドキュメントを確認してください。