From ca91a566ea8f56bfd602ea40c12f05605644f046 Mon Sep 17 00:00:00 2001 From: Daniel Kennedy Date: Tue, 24 Feb 2026 20:41:33 -0500 Subject: [PATCH] Refactor the validation logic in `uploadArtifact` a bit --- .../src/internal/upload/upload-artifact.ts | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/artifact/src/internal/upload/upload-artifact.ts b/packages/artifact/src/internal/upload/upload-artifact.ts index d7f0a6dc..c7a6e60b 100644 --- a/packages/artifact/src/internal/upload/upload-artifact.ts +++ b/packages/artifact/src/internal/upload/upload-artifact.ts @@ -1,4 +1,5 @@ import * as core from '@actions/core' +import * as fs from 'fs' import * as path from 'path' import { UploadArtifactOptions, @@ -42,6 +43,10 @@ export async function uploadArtifact( ) } + if (!fs.existsSync(files[0])) { + throw new FilesNotFoundError(files) + } + artifactFileName = path.basename(files[0]) name = artifactFileName } @@ -49,16 +54,18 @@ export async function uploadArtifact( validateArtifactName(name) validateRootDirectory(rootDirectory) - const zipSpecification: UploadZipSpecification[] = getUploadZipSpecification( - files, - rootDirectory - ) + let zipSpecification: UploadZipSpecification[] = [] - if (!options?.skipArchive && zipSpecification.length === 0) { - throw new FilesNotFoundError( - zipSpecification.flatMap(s => (s.sourcePath ? [s.sourcePath] : [])) - ) + if (!options?.skipArchive) { + zipSpecification = getUploadZipSpecification(files, rootDirectory) + + if (zipSpecification.length === 0) { + throw new FilesNotFoundError( + zipSpecification.flatMap(s => (s.sourcePath ? [s.sourcePath] : [])) + ) + } } + const contentType = getMimeType(artifactFileName) // get the IDs needed for the artifact creation