actions / actions/runner

Recommended folder for installing binaries

Open
#4,377 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
6.3k
Forks
1.4k
Avg merge
1d 16h
Merged PRs (30d)
24

Description

Describe the bug

The version 2.334.0 introduced the folder cs under /home/runner/bin (https://github.com/actions/runner/pull/4317).

♪ docker run -it ghcr.io/actions/actions-runner:2.334.0 ls -lash /home/runner/bin/cs/
total 40K
4.0K drwxr-xr-x  2 runner docker 4.0K Apr 21 18:50 .
 20K drwxr-xr-x 17 runner docker  20K Apr 21 18:50 ..
 16K -rwxr--r--  1 runner docker  15K Feb 13  2025 Microsoft.VisualStudio.Validation.resources.dll

Previous version, for reference:

♪ docker run --rm ghcr.io/actions/actions-runner:2.333.1 ls -la /home/runner/bin/cs/
ls: cannot access '/home/runner/bin/cs/': No such file or directory

This is a problem, for actions like scala-steward-action, more specifically due to /src/modules/coursier.ts, where it downloads Coursier and extracts under /home/runner/bin/cs but with this new version it fails due to:

gzip: /home/runner/bin/cs already exists;    not overwritten.

So, what would be the recommended fix here? Extracting under a different path (e.g., /home/runner/.local/bin/cs)?

To Reproduce

I created this repository to reproduce the issue, but since ubuntu-latest is still running 2.333.1, we cannot reproduce it yet.

Runner Version and Platform

Runner: 2.334.0
Platform: Linux (self-hosted | GKE)

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

Compare the contents of /home/runner/bin in the 2.334.0 and 2.333.1 images using the Docker commands shown, then read scala-steward-action's src/modules/coursier.ts extraction path. Determine which runner directory is intended for downloaded binaries without colliding with the new cs folder; done means the recommended installation path is established and the reported extraction failure is addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, docker
Domain
ci-cd, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 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.