[GitHub]arc-runners上のactions/setup-dotnet失敗


事象

GitHub Actions Runner Controller (ARC)でactions/setup-dotnetが失敗する。

Run actions/setup-dotnet@v4
/home/runner/_work/_actions/actions/setup-dotnet/v4/externals/install-dotnet.sh --skip-non-versioned-files --runtime dotnet --channel LTS
mkdir: cannot create directory '/usr/share/dotnet': Permission denied
Warning: Failed to install dotnet runtime + cli, exit code: 1. mkdir: cannot create directory '/usr/share/dotnet': Permission denied

arc-runnersが使用しているイメージの問題か、setup-dotnetの問題かは知らないが通らない。
多分、GitHubホステッド依存のsetup-dotnetが問題かと。

対応方法

ARC上では次の環境変数を定義する。
DOTNET_INSTALL_DIRはactions/setup-dotnet固有で、.NET固有ではない。

    runs-on: arc-runner-set
    env:
      DOTNET_INSTALL_DIR: ~/.dotnet

.NET environment variables – .NET CLI | Microsoft Learn

調査過程

ググると、同じ事象が。1件のみ。

cannot create directory ‘/usr/share/dotnet’: Permission denied · Issue #12 · vegardit/docker-gitea-act-runner

解決策として挙げられているのはこれ。

Permission denied in /usr/share/dotnet · Issue #327 · actions/setup-dotnet

ARCは使い捨てのPodで実行されるので、動けば良い。
何もせずともactions/setup-pythonは動くので、多分actions/setup-dotnetの問題。

OSごとに、DOTNET_INSTALL_DIRの既定値が設けられているが、問題の本質。実行ユーザーによってパスが変わるため。
install-dotnet.shの仕様は知らないが、root権限で動かすようにしないと狙い通りにならないのでは?

尚、Issueのコメントは./.dotnetとカレントディレクトリに作るようになっているが、~/.dotnetの方がmacOSに近い設定になると思う。

actions/setup-dotnet: Set up your GitHub Actions workflow with a specific version of the .NET core sdk


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA