github.action_path contains wrong path when used inside a container
See original GitHub issueDescribe the bug
When using ${{ github.action_path }}
inside a local composite action and calling this action in a job that runs inside a container, ${{ github.action_path }}
gets resolved to /home/runner/work/ga-test-public/ga-test-public/./.github/actions/repro
instead of /__w/ga-test-public/ga-test-public/./.github/actions/repro
.
There are other closed issues describing the same problem (https://github.com/actions/runner/issues/716, https://github.com/actions/runner/issues/965) and a merged pull request (https://github.com/actions/runner/pull/1762) that should have fixed the issue, but I am still getting the wrong path on GitHub shared runners with version 2.297.0
To Reproduce Here is a reproduction repo and a workflow run with the mentioned issue.
# .github/workflow/test.yml
name: Reploduce the bug
on:
push: {}
workflow_dispatch: {}
jobs:
bug-in-container:
runs-on: ubuntu-20.04
container:
image: centos:7
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/repro
- run: echo runner.temp = ${{ runner.temp }}
- run: ls -al ${{ runner.temp }} || true
- run: echo runner.tool_cache = ${{ runner.tool_cache }}
- run: ls -al ${{ runner.tool_cache }} || true
# .github/actions/repo/action.yml
name: 'Reproduce the bug'
description: ''
inputs: {}
runs:
using: 'composite'
steps:
- shell: bash
run: |
echo github.action_path: ${{ github.action_path }}
ls -al ${{ github.action_path }} || true
Expected behavior
${{ github.action_path }}
should be resolved to a path inside the container, not to a path on the host machine.
Runner Version and Platform
GitHub shared runner version 2.297.0
What’s not working?
Issue Analytics
- State:
- Created a year ago
- Reactions:3
- Comments:8 (3 by maintainers)
Top GitHub Comments
Hey @WIStudent,
Thank you for reporting this! We are aware of this issue. The PR #1762 solved this issue, but there was a problem with hash files, executing from a host machine. We are still exploring the best way to achieve this. I will post an update here about the progress regarding this issue.
For anyone struggling with this:
Let’s say you created a custom action with a script, with the script called
run.sh
and residing in the root of the action.That will get it to work if you are running your build inside a container.