Open malciin opened 1 month ago
After investigating it a little more using v3
version rather than v4
for both actions/download-artifact
& actions/upload-artifact
fixes it:
#...
- uses: actions/upload-artifact@v3
with:
name: a
path: ./a
if-no-files-found: error
- uses: actions/upload-artifact@v3
with:
name: b
path: ./b
if-no-files-found: error
- uses: actions/download-artifact@v3
with:
name: b
path: ./downloaded
- run: cat downloaded/file.txt
output:
[Bugged/test] β Run Main actions/download-artifact@v3
[Bugged/test] π¬ ::debug::Resolved path is C:\Users\Marcin\.cache\act\f64640ce210193ce\hostexecutor\downloaded
| Starting download for b
[Bugged/test] π¬ ::debug::Artifact Url: http://192.168.31.59:34567/_apis/pipelines/workflows/1/artifacts?api-version=6.0-preview
| Directory structure has been setup for the artifact
[Bugged/test] π¬ ::debug::Download file concurrency is set to 2
| Total number of files that will be downloaded: 2
[Bugged/test] π¬ ::debug::C:\Users\Marcin\.cache\act\f64640ce210193ce\hostexecutor\downloaded\b.zip size:(153) blksize:(4096) blocks:(0)
[Bugged/test] π¬ ::debug::C:\Users\Marcin\.cache\act\f64640ce210193ce\hostexecutor\downloaded\file.txt size:(24) blksize:(4096) blocks:(0)
| Artifact b was downloaded to C:\Users\Marcin\.cache\act\f64640ce210193ce\hostexecutor\downloaded
| Artifact download has finished successfully
[Bugged/test] β
Success - Main actions/download-artifact@v3
[Bugged/test] β ::set-output:: download-path=C:\Users\Marcin\.cache\act\f64640ce210193ce\hostexecutor\downloaded
[Bugged/test] β Run Main cat downloaded/file.txt
| b content
[Bugged/test] β
Success - Main cat downloaded/file.txt
[Bugged/test] Cleaning up container for job test
[Bugged/test] π Job succeeded
I'm getting the same π§ ::warning::Multiple artifacts found, defaulting to first.
on this workflow w/o -self-hosted
:
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Create some files
run: |
mkdir -p /some/nested/folder
echo "file1.txt" >> /some/nested/folder/file1.txt
echo "file2.txt" >> /some/nested/folder/file2.txt
mkdir -p /some/nested/folder/deeper
echo "file3.txt" >> /some/nested/folder/deeper/file3.txt
- name: Upload file1 artifact
uses: actions/upload-artifact@v4
with:
name: file1
path: /some/nested/folder/file1.txt
- name: Upload file2 artifact
uses: actions/upload-artifact@v4
with:
name: file2
path: /some/nested/folder/file2.txt
- name: Upload file3 artifact
uses: actions/upload-artifact@v4
with:
name: file3
path: /some/nested/folder/deeper/file3.txt
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: /etc/usr/artifacts
pattern: file*
merge-multiple: true
- name: Print directory structure
run: ls -R /etc/usr/artifacts
Run with: act --container-architecture linux/arm64 --artifact-server-path /tmp/artifacts -W .github/workflows/localTesting.yml
Full output:
act --container-architecture linux/arm64 --artifact-server-path /tmp/artifacts -W .github/workflows/localTesting.yml
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
INFO[0000] Start server on http://192.168.4.170:34567
[localTesting.yml/test] π Start image=ghcr.io/catthehacker/ubuntu:act-latest
[localTesting.yml/test] π³ docker pull image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/arm64 username= forcePull=true
[localTesting.yml/test] using DockerAuthConfig authentication for docker pull
[localTesting.yml/test] π³ docker create image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/arm64 entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[localTesting.yml/test] π³ docker run image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/arm64 entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[localTesting.yml/test] π³ docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[localTesting.yml/test] β git clone 'https://github.com/actions/upload-artifact' # ref=v4
[localTesting.yml/test] β git clone 'https://github.com/actions/upload-artifact' # ref=v4
[localTesting.yml/test] β git clone 'https://github.com/actions/upload-artifact' # ref=v4
[localTesting.yml/test] β git clone 'https://github.com/actions/download-artifact' # ref=v4
[localTesting.yml/test] β Run Main Create some files
[localTesting.yml/test] π³ docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/0] user= workdir=
[localTesting.yml/test] β
Success - Main Create some files
[localTesting.yml/test] β Run Main Upload file1 artifact
[localTesting.yml/test] π³ docker cp src=/Users/roryabraham/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/
[localTesting.yml/test] π³ docker exec cmd=[/opt/acttoolcache/node/18.20.4/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir=
[localTesting.yml/test] π¬ ::debug::followSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::implicitDescendants 'true'
[localTesting.yml/test] π¬ ::debug::omitBrokenSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::excludeHiddenFiles 'true'
[localTesting.yml/test] π¬ ::debug::followSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::implicitDescendants 'true'
[localTesting.yml/test] π¬ ::debug::matchDirectories 'true'
[localTesting.yml/test] π¬ ::debug::omitBrokenSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::excludeHiddenFiles 'true'
[localTesting.yml/test] π¬ ::debug::Search path '/some/nested/folder/file1.txt'
[localTesting.yml/test] π¬ ::debug::File:/some/nested/folder/file1.txt was found using the provided searchPath
| With the provided path, there will be 1 file uploaded
[localTesting.yml/test] π¬ ::debug::Root artifact directory is /some/nested/folder
| Artifact name is valid!
| Root directory input is valid!
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] CreateArtifact http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/CreateArtifact
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:47 GMT",%0A "content-length": "251",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "ok": true,%0A "signedUploadUrl": "http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/UploadArtifact?sig=R4btY98C2lF56q9rnRr0YMYk5-jqkwkAVuVtF5Y08G0=&expires=2024-09-18+19%253A17%253A47.096777+-0700+PDT&artifactName=file1&taskID=1"%0A}
[localTesting.yml/test] π¬ ::debug::Creating Artifact archive with compressionLevel: 6
[localTesting.yml/test] π¬ ::debug::Zip write high watermark value 8388608
[localTesting.yml/test] π¬ ::debug::Zip read high watermark value 8388608
[localTesting.yml/test] π¬ ::debug::Uploading artifact zip to blob storage with maxConcurrency: 192, bufferSize: 8388608
| Beginning upload of artifact content to blob storage
[localTesting.yml/test] π¬ ::debug::Zip stream for upload has ended.
[localTesting.yml/test] π¬ ::debug::Zip stream for upload has finished.
| Uploaded bytes 144
| Finished uploading artifact content to blob storage!
| SHA256 hash of uploaded artifact zip is db513bc03bc6f4bb01c2945a028102ec022d408737e6f26e5f16554e4706190d
| Finalizing artifact upload
[localTesting.yml/test] π¬ ::debug::[Request] FinalizeArtifact http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/FinalizeArtifact
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:47 GMT",%0A "content-length": "28",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "ok": true,%0A "artifactId": "1"%0A}
| Artifact file1.zip successfully finalized. Artifact ID 1
| Artifact file1 has been successfully uploaded! Final size is 144 bytes. Artifact ID is 1
| Artifact download URL: https://github.com/Expensify/App/actions/runs/1/artifacts/1
[localTesting.yml/test] β
Success - Main Upload file1 artifact
[localTesting.yml/test] β ::set-output:: artifact-id=1
[localTesting.yml/test] β ::set-output:: artifact-url=https://github.com/Expensify/App/actions/runs/1/artifacts/1
[localTesting.yml/test] β Run Main Upload file2 artifact
[localTesting.yml/test] π³ docker cp src=/Users/roryabraham/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/
[localTesting.yml/test] π³ docker exec cmd=[/opt/acttoolcache/node/18.20.4/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir=
[localTesting.yml/test] π¬ ::debug::followSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::implicitDescendants 'true'
[localTesting.yml/test] π¬ ::debug::omitBrokenSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::excludeHiddenFiles 'true'
[localTesting.yml/test] π¬ ::debug::followSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::implicitDescendants 'true'
[localTesting.yml/test] π¬ ::debug::matchDirectories 'true'
[localTesting.yml/test] π¬ ::debug::omitBrokenSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::excludeHiddenFiles 'true'
[localTesting.yml/test] π¬ ::debug::Search path '/some/nested/folder/file2.txt'
[localTesting.yml/test] π¬ ::debug::File:/some/nested/folder/file2.txt was found using the provided searchPath
| With the provided path, there will be 1 file uploaded
[localTesting.yml/test] π¬ ::debug::Root artifact directory is /some/nested/folder
| Artifact name is valid!
| Root directory input is valid!
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] CreateArtifact http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/CreateArtifact
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:47 GMT",%0A "content-length": "251",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "ok": true,%0A "signedUploadUrl": "http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/UploadArtifact?sig=AMHRISsGVfX3t7gUCx9o6tu4vskXi4qpMZZX8ZvCjTw=&expires=2024-09-18+19%253A17%253A47.609526+-0700+PDT&artifactName=file2&taskID=1"%0A}
[localTesting.yml/test] π¬ ::debug::Creating Artifact archive with compressionLevel: 6
[localTesting.yml/test] π¬ ::debug::Zip write high watermark value 8388608
[localTesting.yml/test] π¬ ::debug::Zip read high watermark value 8388608
[localTesting.yml/test] π¬ ::debug::Uploading artifact zip to blob storage with maxConcurrency: 192, bufferSize: 8388608
| Beginning upload of artifact content to blob storage
[localTesting.yml/test] π¬ ::debug::Zip stream for upload has ended.
[localTesting.yml/test] π¬ ::debug::Zip stream for upload has finished.
| Uploaded bytes 144
| Finished uploading artifact content to blob storage!
| SHA256 hash of uploaded artifact zip is 3f94f7e3657456e81c8be997984cd61851af9ee007403971b8b07abed0aaee9b
| Finalizing artifact upload
[localTesting.yml/test] π¬ ::debug::[Request] FinalizeArtifact http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/FinalizeArtifact
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:47 GMT",%0A "content-length": "28",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "ok": true,%0A "artifactId": "1"%0A}
| Artifact file2.zip successfully finalized. Artifact ID 1
| Artifact file2 has been successfully uploaded! Final size is 144 bytes. Artifact ID is 1
| Artifact download URL: https://github.com/Expensify/App/actions/runs/1/artifacts/1
[localTesting.yml/test] β
Success - Main Upload file2 artifact
[localTesting.yml/test] β ::set-output:: artifact-id=1
[localTesting.yml/test] β ::set-output:: artifact-url=https://github.com/Expensify/App/actions/runs/1/artifacts/1
[localTesting.yml/test] β Run Main Upload file3 artifact
[localTesting.yml/test] π³ docker cp src=/Users/roryabraham/.cache/act/actions-upload-artifact@v4/ dst=/var/run/act/actions/actions-upload-artifact@v4/
[localTesting.yml/test] π³ docker exec cmd=[/opt/acttoolcache/node/18.20.4/arm64/bin/node /var/run/act/actions/actions-upload-artifact@v4/dist/upload/index.js] user= workdir=
[localTesting.yml/test] π¬ ::debug::followSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::implicitDescendants 'true'
[localTesting.yml/test] π¬ ::debug::omitBrokenSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::excludeHiddenFiles 'true'
[localTesting.yml/test] π¬ ::debug::followSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::implicitDescendants 'true'
[localTesting.yml/test] π¬ ::debug::matchDirectories 'true'
[localTesting.yml/test] π¬ ::debug::omitBrokenSymbolicLinks 'true'
[localTesting.yml/test] π¬ ::debug::excludeHiddenFiles 'true'
[localTesting.yml/test] π¬ ::debug::Search path '/some/nested/folder/deeper/file3.txt'
[localTesting.yml/test] π¬ ::debug::File:/some/nested/folder/deeper/file3.txt was found using the provided searchPath
| With the provided path, there will be 1 file uploaded
[localTesting.yml/test] π¬ ::debug::Root artifact directory is /some/nested/folder/deeper
| Artifact name is valid!
| Root directory input is valid!
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] CreateArtifact http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/CreateArtifact
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "251",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "ok": true,%0A "signedUploadUrl": "http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/UploadArtifact?sig=J3IExk9ZIPqwJAIx0e63hKOi4hqA9kNe0u96dpM9A30=&expires=2024-09-18+19%253A17%253A48.118761+-0700+PDT&artifactName=file3&taskID=1"%0A}
[localTesting.yml/test] π¬ ::debug::Creating Artifact archive with compressionLevel: 6
[localTesting.yml/test] π¬ ::debug::Zip write high watermark value 8388608
[localTesting.yml/test] π¬ ::debug::Zip read high watermark value 8388608
[localTesting.yml/test] π¬ ::debug::Uploading artifact zip to blob storage with maxConcurrency: 192, bufferSize: 8388608
| Beginning upload of artifact content to blob storage
[localTesting.yml/test] π¬ ::debug::Zip stream for upload has ended.
[localTesting.yml/test] π¬ ::debug::Zip stream for upload has finished.
| Uploaded bytes 144
| Finished uploading artifact content to blob storage!
| SHA256 hash of uploaded artifact zip is bbd18902d7f7cb502bee8f426be23a03ca7d177290f5a50057409df427fba2f4
| Finalizing artifact upload
[localTesting.yml/test] π¬ ::debug::[Request] FinalizeArtifact http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/FinalizeArtifact
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "28",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "ok": true,%0A "artifactId": "1"%0A}
| Artifact file3.zip successfully finalized. Artifact ID 1
| Artifact file3 has been successfully uploaded! Final size is 144 bytes. Artifact ID is 1
| Artifact download URL: https://github.com/Expensify/App/actions/runs/1/artifacts/1
[localTesting.yml/test] β
Success - Main Upload file3 artifact
[localTesting.yml/test] β ::set-output:: artifact-id=1
[localTesting.yml/test] β ::set-output:: artifact-url=https://github.com/Expensify/App/actions/runs/1/artifacts/1
[localTesting.yml/test] β Run Main Download artifacts
[localTesting.yml/test] π³ docker cp src=/Users/roryabraham/.cache/act/actions-download-artifact@v4/ dst=/var/run/act/actions/actions-download-artifact@v4/
[localTesting.yml/test] π³ docker exec cmd=[/opt/acttoolcache/node/18.20.4/arm64/bin/node /var/run/act/actions/actions-download-artifact@v4/dist/index.js] user= workdir=
[localTesting.yml/test] π¬ ::debug::Resolved path is /etc/usr/artifacts
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] ListArtifacts http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/ListArtifacts
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "459",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "artifacts": [%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file1",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:13.830104161Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file2",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.358588875Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file3",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.875335622Z"%0A }%0A ]%0A}
| Found 3 artifact(s)
[localTesting.yml/test] π¬ ::debug::Found 3 artifacts in run
| Filtering artifacts by pattern 'file*'
[localTesting.yml/test] π¬ ::debug::Filtered from 3 to 3 artifacts
| Preparing to download the following artifacts:
| - file1 (ID: 1, Size: 96)
| - file2 (ID: 1, Size: 96)
| - file3 (ID: 1, Size: 96)
[localTesting.yml/test] π¬ ::debug::Artifact destination folder does not exist, creating: /etc/usr/artifacts
[localTesting.yml/test] π¬ ::debug::Artifact destination folder does not exist, creating: /etc/usr/artifacts
[localTesting.yml/test] π¬ ::debug::Artifact destination folder does not exist, creating: /etc/usr/artifacts
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] ListArtifacts http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/ListArtifacts
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] ListArtifacts http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/ListArtifacts
[localTesting.yml/test] π¬ ::debug::Workflow Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::Workflow Job Run Backend ID: 1
[localTesting.yml/test] π¬ ::debug::[Request] ListArtifacts http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/ListArtifacts
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "459",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "artifacts": [%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file1",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:13.830104161Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file2",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.358588875Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file3",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.875335622Z"%0A }%0A ]%0A}
[localTesting.yml/test] π§ ::warning::Multiple artifacts found, defaulting to first.
[localTesting.yml/test] π¬ ::debug::[Request] GetSignedArtifactURL http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/GetSignedArtifactURL
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "459",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "artifacts": [%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file1",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:13.830104161Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file2",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.358588875Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file3",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.875335622Z"%0A }%0A ]%0A}
[localTesting.yml/test] π§ ::warning::Multiple artifacts found, defaulting to first.
[localTesting.yml/test] π¬ ::debug::[Request] GetSignedArtifactURL http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/GetSignedArtifactURL
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "459",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "artifacts": [%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file1",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:13.830104161Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file2",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.358588875Z"%0A },%0A {%0A "workflowRunBackendId": "1",%0A "workflowJobRunBackendId": "1",%0A "databaseId": "1",%0A "name": "file3",%0A "size": "96",%0A "createdAt": "2024-09-19T00:58:14.875335622Z"%0A }%0A ]%0A}
[localTesting.yml/test] π§ ::warning::Multiple artifacts found, defaulting to first.
[localTesting.yml/test] π¬ ::debug::[Request] GetSignedArtifactURL http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/GetSignedArtifactURL
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "237",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "signedUrl": "http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/DownloadArtifact?sig=PcMfjNmQw6fvnIHCb7GSXviUeEObL0ylpUWy1oEJpe8=&expires=2024-09-18+19%253A17%253A48.571129+-0700+PDT&artifactName=file1&taskID=1"%0A}
| Redirecting to blob download url: http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/DownloadArtifact
| Starting download of artifact to: /etc/usr/artifacts
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "237",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "signedUrl": "http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/DownloadArtifact?sig=hzN56kXIL86ZxbYvlF_WWjkxM8s2UVwFLyim_NXTLGk=&expires=2024-09-18+19%253A17%253A48.571808+-0700+PDT&artifactName=file1&taskID=1"%0A}
| Redirecting to blob download url: http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/DownloadArtifact
| Starting download of artifact to: /etc/usr/artifacts
[localTesting.yml/test] π¬ ::debug::[Response] - 200
[localTesting.yml/test] π¬ ::debug::Headers: {%0A "content-type": "application/json;charset=utf-8",%0A "date": "Thu, 19 Sep 2024 01:17:48 GMT",%0A "content-length": "237",%0A "connection": "close"%0A}
[localTesting.yml/test] π¬ ::debug::Body: {%0A "signedUrl": "http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/DownloadArtifact?sig=UJN_SgAE_8JALq5Pueh1nsRgqd8FxCTuE5TfNA-Rslc=&expires=2024-09-18+19%253A17%253A48.572473+-0700+PDT&artifactName=file1&taskID=1"%0A}
| Redirecting to blob download url: http://192.168.4.170:34567/twirp/github.actions.results.api.v1.ArtifactService/DownloadArtifact
| Starting download of artifact to: /etc/usr/artifacts
| (node:87) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
| (Use `node --trace-deprecation ...` to show where the warning was created)
| Artifact download completed successfully.
| Artifact download completed successfully.
| Artifact download completed successfully.
| Total of 3 artifact(s) downloaded
| Download artifact has finished successfully
[localTesting.yml/test] β
Success - Main Download artifacts
[localTesting.yml/test] β ::set-output:: download-path=/etc/usr/artifacts
[localTesting.yml/test] β Run Main Print directory structure
[localTesting.yml/test] π³ docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/5] user= workdir=
| /etc/usr/artifacts:
| file1.txt
[localTesting.yml/test] β
Success - Main Print directory structure
[localTesting.yml/test] Cleaning up container for job test
[localTesting.yml/test] π Job succeeded
As you can see, only file1.txt
is downloaded, but I think it's a π with act. Confirmed it works as expected if I switch actions/download-artifact
to v3
Bug report info
Command used with act
Describe issue
I've found that
actions/download-artifact@v4
can download invalid file (even tho name input parameter is specified) when running with-self-hosted
flag.If I use workflow like:
it will correctly print
b content
, however if we uncomment these lines we'll get a warning:::warning::Multiple artifacts found, defaulting to first.
because of following following response:And
cat downloaded/file.txt
will printa content
because it downloadeda
artifact not theb
artifact.Link to GitHub repository
No response
Workflow content
Relevant log output
Additional information
No response