Fixes #55 Add artifact validation which check to ensure it's not a directory
This commit is contained in:
@@ -27,28 +27,34 @@ const core = __importStar(require("@actions/core"));
|
||||
const Globber_1 = require("./Globber");
|
||||
const Artifact_1 = require("./Artifact");
|
||||
const untildify_1 = __importDefault(require("untildify"));
|
||||
const ArtifactPathValidator_1 = require("./ArtifactPathValidator");
|
||||
class FileArtifactGlobber {
|
||||
constructor(globber = new Globber_1.FileGlobber()) {
|
||||
this.globber = globber;
|
||||
}
|
||||
globArtifactString(artifact, contentType, throwsWhenNoFiles) {
|
||||
globArtifactString(artifact, contentType, errorsFailBuild) {
|
||||
return artifact.split(',')
|
||||
.map(path => FileArtifactGlobber.expandPath(path))
|
||||
.map(pattern => this.globPattern(pattern, throwsWhenNoFiles))
|
||||
.map(pattern => this.globPattern(pattern, errorsFailBuild))
|
||||
.map((globResult) => FileArtifactGlobber.validatePattern(errorsFailBuild, globResult[1], globResult[0]))
|
||||
.reduce((accumulated, current) => accumulated.concat(current))
|
||||
.map(path => new Artifact_1.Artifact(path, contentType));
|
||||
}
|
||||
globPattern(pattern, throwsWhenNoFiles) {
|
||||
globPattern(pattern, errorsFailBuild) {
|
||||
const paths = this.globber.glob(pattern);
|
||||
if (paths.length == 0) {
|
||||
if (throwsWhenNoFiles) {
|
||||
if (errorsFailBuild) {
|
||||
FileArtifactGlobber.throwGlobError(pattern);
|
||||
}
|
||||
else {
|
||||
FileArtifactGlobber.reportGlobWarning(pattern);
|
||||
}
|
||||
}
|
||||
return paths;
|
||||
return [pattern, paths];
|
||||
}
|
||||
static validatePattern(errorsFailBuild, paths, pattern) {
|
||||
const validator = new ArtifactPathValidator_1.ArtifactPathValidator(errorsFailBuild, paths, pattern);
|
||||
return validator.validate();
|
||||
}
|
||||
static reportGlobWarning(pattern) {
|
||||
core.warning(`Artifact pattern :${pattern} did not match any files`);
|
||||
|
||||
Reference in New Issue
Block a user