GITHUB_PATH変数

GitHub Actions内のシェルスクリプトでGITHUB_PATH変数にリダイレクトでパス文字列を追加すると、そのパスが次のSTEPでも有効になる。

jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
      ...

      run: |
        echo "/path/to/bin" >> $GITHUB_PATH
                

上記のように$GITHUB_PATHにパス文字列/path/to/binを追記すると、以降のSTEPで/path/to/bin直下のバイナリをフルパスではなくファイル名だけで実行できるようになる。

実験

name: set path test

on:
  workflow_dispatch:

jobs:
  test-job:
    runs-on: ubuntu-latest
    steps:
      # ① ${{ github.workspace }}/bin に foo.sh を作成
      - name: make shell script
        run: |
          mkdir -p ${{ github.workspace }}/bin
          echo "#!/bin/sh" >> ${{ github.workspace }}/bin/foo.sh
          echo "echo hello" >> ${{ github.workspace }}/bin/foo.sh
          chmod +x ${{ github.workspace }}/bin/foo.sh
                    
      # ② ${{ github.workspace }}/bin を PATH (GITHUB_PATH) に追加
      - name:  set path
        run: |
          echo ${{ github.workspace }}/bin >> $GITHUB_PATH
                    
      # ③ foo.sh をフルパスではなくファイル名だけで実行
      - name: run shell script
        run: |
          foo.sh
                    

上記の実験ワークフローでは3ステップに分かれている。

①では${{ github.workspace }}/binfoo.shを作成している。
②では${{ github.workspace }}/bin$GITHUB_PATHに追加している。 $GITHUB_PATHにパスを追加したので③ではファイル名foo.shだけで実行できる。

実行すると以下の画像のようにfoo.shが正常に実行され、helloが出力される。

実行結果