From 7396e85e4aa5628b72f8d39f11b6a90919e34880 Mon Sep 17 00:00:00 2001 From: Daniel Kennedy Date: Tue, 24 Feb 2026 12:21:35 -0500 Subject: [PATCH] Check for 0 sized artifact lists --- packages/artifact/__tests__/upload-artifact.test.ts | 11 +++++++++++ .../artifact/src/internal/upload/upload-artifact.ts | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/packages/artifact/__tests__/upload-artifact.test.ts b/packages/artifact/__tests__/upload-artifact.test.ts index f48f290a..9865815d 100644 --- a/packages/artifact/__tests__/upload-artifact.test.ts +++ b/packages/artifact/__tests__/upload-artifact.test.ts @@ -373,6 +373,17 @@ describe('upload-artifact', () => { }) describe('skipArchive option', () => { + it('should throw an error if skipArchive is true and files array is empty', async () => { + const uploadResp = uploadArtifact( + fixtures.inputs.artifactName, + [], + fixtures.inputs.rootDirectory, + {skipArchive: true} + ) + + await expect(uploadResp).rejects.toThrow(FilesNotFoundError) + }) + it('should throw an error if skipArchive is true and multiple files are provided', async () => { const uploadResp = uploadArtifact( fixtures.inputs.artifactName, diff --git a/packages/artifact/src/internal/upload/upload-artifact.ts b/packages/artifact/src/internal/upload/upload-artifact.ts index 97c7545e..d7f0a6dc 100644 --- a/packages/artifact/src/internal/upload/upload-artifact.ts +++ b/packages/artifact/src/internal/upload/upload-artifact.ts @@ -32,6 +32,10 @@ export async function uploadArtifact( ): Promise { let artifactFileName = `${name}.zip` if (options?.skipArchive) { + if (files.length === 0) { + throw new FilesNotFoundError([]) + } + if (files.length > 1) { throw new Error( 'skipArchive option is only supported when uploading a single file'