runner icon indicating copy to clipboard operation
runner copied to clipboard

github.action_path contains wrong path when used inside a container

Open WIStudent opened this issue 1 year ago • 1 comments

Describe 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?

grafik

WIStudent avatar Oct 06 '22 14:10 WIStudent