Description
Describe the bug
hashFiles()
does not permit .
and ..
segments in its arguments. However, when using a composite action from the same repository, github.action_path
contains a trailing /./
, as the argument to uses
has to begin with .
to be recognized as a path.
To Reproduce
Steps to reproduce the behavior:
- In a blank repo, create a composite action at
.github/actions/foo
that invokeshashFiles(format('{0}/bar.txt', github.action_path))
. - Use that action in a workflow via
uses: ./.github/actions/foo
and trigger the workflow. - See error
Expected behavior
It should be possible to use hashFiles()
with github.action_path
in a composite action. It shouldn't be necessary to have a separate Bash step that only exists to trim the last two characters off the end of the path.
Runner Version and Platform
Version of your runner? 2.322.0
OS of the machine running the runner? Ubuntu 24.0.2 LTS
What's not working?
##[debug]AssertionError [ERR_ASSERTION]: Invalid pattern '/home/runner/work/<repo>/./.github/actions/foo/bar.txt'. Relative pathing '.' and '..' is not allowed.
##[debug] at Pattern.fixupPattern (/home/runner/runners/2.322.0/bin/hashFiles/index.js:2188:25)
##[debug] at new Pattern (/home/runner/runners/2.322.0/bin/hashFiles/index.js:2102:27)
##[debug] at DefaultGlobber.<anonymous> (/home/runner/runners/2.322.0/bin/hashFiles/index.js:1423:42)
##[debug] at Generator.next (<anonymous>)
##[debug] at /home/runner/runners/2.322.0/bin/hashFiles/index.js:1269:71
##[debug] at new Promise (<anonymous>)
##[debug] at __webpack_modules__.8298.__awaiter (/home/runner/runners/2.322.0/bin/hashFiles/index.js:1265:12)
##[debug] at DefaultGlobber.create (/home/runner/runners/2.322.0/bin/hashFiles/index.js:1409:16)
##[debug] at Object.<anonymous> (/home/runner/runners/2.322.0/bin/hashFiles/index.js:1150:56)
##[debug] at Generator.next (<anonymous>) {
##[debug] generatedMessage: false,
##[debug] code: 'ERR_ASSERTION',
##[debug] actual: false,
##[debug] expected: true,
##[debug] operator: '=='
##[debug]}
##[debug]STDOUT/STDERR stream read finished.
##[debug]STDOUT/STDERR stream read finished.
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.
N/A
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.
N/A