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'