diff --git a/.github/workflows/test-per-file.yml b/.github/workflows/test-per-file.yml index 447e13f..51623c6 100644 --- a/.github/workflows/test-per-file.yml +++ b/.github/workflows/test-per-file.yml @@ -91,4 +91,4 @@ jobs: path/**/dir-1/ !path/to/dir-3/*.gz artifact-per-file: true - artifact-name-rule: ${{ matrix.runs-on }}-${name} + artifact-name-rule: ${{ matrix.runs-on }}-${path}-${name} diff --git a/dist/index.js b/dist/index.js index 3dd6b32..c994e44 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4781,6 +4781,15 @@ function run() { } const artifactsName = inputs['artifactsName'] || 'artifacts'; const artifactPerFile = inputs['artifactPerFile'] || false; + // GitHub workspace + let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] || undefined; + if (!githubWorkspacePath) { + core.warning('GITHUB_WORKSPACE not defined'); + } + else { + githubWorkspacePath = path_1.default.resolve(githubWorkspacePath); + core.info(`GITHUB_WORKSPACE = '${githubWorkspacePath}'`); + } const rootDirectory = searchResult.rootDirectory; core.info('rootDirectory: ' + rootDirectory); if (!artifactPerFile) { @@ -4802,7 +4811,9 @@ function run() { core.info('file: ' + file); const pathObject = Object.assign({}, path_1.default.parse(file)); const pathBase = pathObject.base; - const pathRoot = path_1.default.parse(rootDirectory).dir; + const pathRoot = githubWorkspacePath + ? githubWorkspacePath + : path_1.default.parse(rootDirectory).dir; pathObject.root = pathRoot; core.info('root: ' + pathRoot); pathObject['path'] = file.slice(pathRoot.length, file.length - path_1.default.sep.length - pathBase.length); @@ -4835,7 +4846,7 @@ function run() { artifactName = `${i}__${artifactName}`; core.warning(`${oldArtifactName} => ${artifactName}`); } - const uploadResponse = yield artifactClient.uploadArtifact(artifactName, [file], searchResult.rootDirectory, options); + const uploadResponse = yield artifactClient.uploadArtifact(artifactName, [file], rootDirectory, options); if (uploadResponse.failedItems.length > 0) { FailedItems.push(artifactName); } diff --git a/src/upload-artifact.ts b/src/upload-artifact.ts index 1714a85..98440b1 100644 --- a/src/upload-artifact.ts +++ b/src/upload-artifact.ts @@ -55,6 +55,16 @@ async function run(): Promise { const artifactsName = inputs['artifactsName'] || 'artifacts' const artifactPerFile = inputs['artifactPerFile'] || false + + // GitHub workspace + let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] || undefined + if (!githubWorkspacePath) { + core.warning('GITHUB_WORKSPACE not defined') + } else { + githubWorkspacePath = path.resolve(githubWorkspacePath) + core.info(`GITHUB_WORKSPACE = '${githubWorkspacePath}'`) + } + const rootDirectory = searchResult.rootDirectory core.info('rootDirectory: ' + rootDirectory) @@ -87,7 +97,9 @@ async function run(): Promise { const pathObject = Object.assign({}, path.parse(file)) const pathBase = pathObject.base - const pathRoot = path.parse(rootDirectory).dir + const pathRoot = githubWorkspacePath + ? githubWorkspacePath + : path.parse(rootDirectory).dir pathObject.root = pathRoot core.info('root: ' + pathRoot) @@ -131,7 +143,7 @@ async function run(): Promise { const uploadResponse = await artifactClient.uploadArtifact( artifactName, [file], - searchResult.rootDirectory, + rootDirectory, options ) if (uploadResponse.failedItems.length > 0) {