actions / actions/setup-dotnet

Default installation fails on `ARC` managed runners

Open
#360 15 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request investigation
Dominant language
TypeScript
Stars
1.2k
Forks
572
Avg merge
12d 20h
Merged PRs (30d)
1

Description

Description:
A default usage of The Github/Microsoft setup-dotnet action on a Github Runner managed by the GitHub/Microsoft actions-runner-controller fails to install.

Task version:

v3

Platform:

  • Ubuntu
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Repro steps:

name: "Test dotnet"

on:
  workflow_dispatch:
  
jobs:
  "test-aws-secure-access":
    name: "install dot net"
    runs-on: MyOrg-Enterprise-Testing
    steps:
    - uses: actions/setup-dotnet@v3
      with:
        dotnet-version: '3.1.x'

Expected behavior:
The setup-dotnet should install into an unpriviledges path similar to setup-node, setup-python, setup-java. These actions all work out of the box on the Github/Microsoft Actions Runner Controller.

Actual behavior:

Run actions/setup-dotnet@v3
/runner/_work/_actions/actions/setup-dotnet/v3/externals/install-dotnet.sh --channel 3.1
dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
dotnet-install: - The SDK needs to be installed without user interaction and without admin rights.
dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs.
dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.

mkdir: cannot create directory '/usr/share/dotnet': Permission denied
Error: Failed to install dotnet 1. dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the Ubuntu self-hosted workflow using actions/setup-dotnet@v3 on an actions-runner-controller-managed runner. Start with the external install-dotnet.sh invocation shown in the log and compare its install path with the unprivileged behavior expected from the other setup actions. Done means the provided workflow installs .NET without admin rights and no longer fails creating /usr/share/dotnet.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
ci-cd, devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.