GitHub Actionsでデフォルトの作業ディレクトリを絶対パスで取得する方法の備忘録です。
はじめに
GitHub Actionsでスタート時点の作業ディレクトリの絶対パスを取得したいことがあります。
その取得方法で少し戸惑ったことがあったので、やり方の備忘録を残します。
※ 動作検証に使ったソースコードはこちらに置いています:
デフォルト作業ディレクトリの絶対パスを取得する
${{ env.GITHUB_WORKSPACE }}
では取得できない
ドキュメントを眺めてみると、丁度よさそうな環境変数が定義されていました。
GITHUB_WORKSPACE
The default working directory on the runner for steps, and the default location of your repository when using the checkout action. For example, /home/runner/work/my-repo-name/my-repo-name.
まずはこの値をenv
contextから${{ env.GITHUB_WORKSPACE }}
と参照してみると、どうもこのやり方では上手く取得できません。
- run: | echo ${{ env.GITHUB_WORKSPACE }} # 何も出力されない
env
contextにはGITHUB_WORKSPACE
はセットされていないようです。
$GITHUB_WORKSPACE
で取得できる
この値は、$GITHUB_WORKSPACE
や ${GITHUB_WORKSPACE}
で直接環境変数を参照することで取得できます。
- run: | echo $GITHUB_WORKSPACE # 出力例 # /home/runner/work/actions-tests/actions-tests
${{ github.workspace }}
でも取得できる
また、github contextのworkspace
からも同じ値を取得することができます。
github.workspace
The default working directory on the runner for steps, and the default location of your repository when using the checkout action.
- run: | echo ${{ github.workspace }} # 出力例 # /home/runner/work/actions-tests/actions-tests
おわりに
GitHub Actionsでデフォルトの作業ディレクトリを絶対パスで取得する方法を整理しました。
GitHub Actionsにおける環境変数とenv contextをふんわりと捉えていた節があるので、良い頭の整理にもなりました。
どなたかの参考になれば幸いです。
[関連記事]
参考
Environment Variables - GitHub Actions
github context - GitHub Actions
community · Discussions · GitHub
GitHub actions to copy files to GitHub Workspace - Stack Overflow