github.workspace and runner.workspace are incorrect inside container jobs
See original GitHub issueDescribe the bug
github.Workspace and runner.Workspace don’t point to container valid paths when executing inside a container job.
The values are also inconsistent with the values for env variables GITHUB_WORKSPACE and RUNNER_WORKSPACE (both contain a valid path.
To Reproduce Steps to reproduce the behavior:
- Create a workflow with the following jobs
jobs:
runner:
runs-on: ubuntu-latest
steps:
- name: dump
run: |
echo 'github.workspace === ${{ github.workspace }}'
echo "GITHUB_WORKSPACE === $GITHUB_WORKSPACE"
echo 'runner.workspace === ${{ runner.workspace }}'
echo "RUNNER_WORKSPACE === $RUNNER_WORKSPACE"
container:
runs-on: ubuntu-latest
container:
image: node:14.16
steps:
- name: dump
run: |
echo 'github.workspace === ${{ github.workspace }}'
echo "GITHUB_WORKSPACE === $GITHUB_WORKSPACE"
echo 'runner.workspace === ${{ runner.workspace }}'
echo "RUNNER_WORKSPACE === $RUNNER_WORKSPACE"
- Check the value in the container job for ${{ github.workspace }} and $GITHUB_WORKSPACE which are not the same
- Check the value in the container job for ${{ runner.workspace }} and $RUNNER_WORKSPACE which are not the same
Expected behavior
On the container job github.workspaceand runner.workspace should point to a path in the directory /__w
Runner Version and Platform
Version of your runner? 2.295.0
OS of the machine running the runner? ubuntu 20.04.4 (ubuntu-latest)
What’s not working?
The values for github.workspace and runner.workspace are incorrect in the container job (and inconsistent with respective env variables)
Job Log Output
If applicable, include the relevant part of the job / step log output here. All sensitive information should already be masked out, but please double-check before pasting here.
Output of container dump step in the container job
github.workspace === /home/runner/work/testContainers/testContainers
GITHUB_WORKSPACE === /__w/testContainers/testContainers
runner.workspace === /home/runner/work/testContainers
RUNNER_WORKSPACE === /__w/testContainers
Runner and Worker’s Diagnostic Logs
If applicable, add relevant diagnostic log information. Logs are located in the runner’s _diag folder. The runner logs are prefixed with Runner_ and the worker logs are prefixed with Worker_. Each job run correlates to a worker log. All sensitive information should already be masked out, but please double-check before pasting here.
Issue Analytics
- State:
- Created a year ago
- Reactions:38
- Comments:18 (2 by maintainers)

Top Related StackOverflow Question
Hi @tspascoal,
Thanks for reporting this issue. We’ve investigated this issue before and are working on resolving it 👍
2022-08-22 Update: Correctly translating github.workspace causes some regressions, considering introducing
github.host-workspaceOne thing to note is that
${{runner.workspace}}inside therunpart of the step, yields different results than${{runner.workspace}}being inside theworking-directoryof a step.In my case the
working-directorywill spit out a/__w/REPOSITORY/, whilerunwill spit out a/home/ubuntu/actions-runner/_work/REPOSITORY/.