I’m currently creating GitHub Action pipelines for building and testing multiple solutions within a single large monorepo. These solutions target a variety of .NET versions so in order to allow them all to run in my pipeline I need to include install all the required versions.
This worked fine using v2 of the
actions/setup-dotnet@v2 action for .NET versions 5 and 6.
- name: Setup .NET uses: actions/setup-dotnet@v2 with: dotnet-version: | 5.0.x 6.0.x
However when I tried to include
3.1.x as well the action failed to install it. In order to try and resolve the issue I upgraded the action version to v3 which then gave me the following error.
mkdir: cannot create directory ‘usr/share/dotnet’: Permission denied
It appears that when running in an Ubuntu runner that it tries to install .NET in a directory to which it doesn’t have permission. This can be resolved by specifying the install directory for .NET in the environment variable
jobs: test: runs-on: ununtu-latest env: DOTNET_INSTALL_DIR: "./.dotnet" steps: - name: Setup .NET uses: actions/setup-dotnet@v2 with: dotnet-version: | 3.1.x 5.0.x 6.0.x