mirror of
https://github.com/gradle/wrapper-validation-action
synced 2024-11-27 18:52:03 +00:00
Better reporting of invalid wrapper jars
Signed-off-by: Paul Merlin <paul@gradle.com>
This commit is contained in:
parent
73443bf726
commit
89c35dd18b
4 changed files with 32 additions and 7 deletions
|
@ -9,6 +9,9 @@ test('validates wrapper jars', async () => {
|
||||||
)
|
)
|
||||||
expect(invalidWrapperJars.length).toBe(1)
|
expect(invalidWrapperJars.length).toBe(1)
|
||||||
expect(invalidWrapperJars[0]).toEqual(
|
expect(invalidWrapperJars[0]).toEqual(
|
||||||
'__tests__/data/invalid/gradle-wrapper.jar'
|
new validate.InvalidWrapperJar(
|
||||||
|
'__tests__/data/invalid/gradle-wrapper.jar',
|
||||||
|
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
12
dist/index.js
vendored
12
dist/index.js
vendored
|
@ -344,7 +344,8 @@ function run() {
|
||||||
const allowChecksums = core.getInput('allow-checksums').split(',');
|
const allowChecksums = core.getInput('allow-checksums').split(',');
|
||||||
const invalidWrapperJars = yield validate.findInvalidWrapperJars(path.resolve('.'), allowSnapshots, allowChecksums);
|
const invalidWrapperJars = yield validate.findInvalidWrapperJars(path.resolve('.'), allowSnapshots, allowChecksums);
|
||||||
if (invalidWrapperJars.length > 0) {
|
if (invalidWrapperJars.length > 0) {
|
||||||
core.setFailed(`Invalid wrapper jars ${invalidWrapperJars}`);
|
const list = invalidWrapperJars.map(invalid => `${invalid.checksum} ${invalid.path}`);
|
||||||
|
core.setFailed(`Found unknown Gradle Wrapper JAR files\n${list.join('\n- ')}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
|
@ -953,7 +954,7 @@ function findInvalidWrapperJars(gitRepoRoot, allowSnapshots, allowChecksums) {
|
||||||
for (const wrapperJar of wrapperJars) {
|
for (const wrapperJar of wrapperJars) {
|
||||||
const sha = yield hash.sha256File(wrapperJar);
|
const sha = yield hash.sha256File(wrapperJar);
|
||||||
if (!validChecksums.includes(sha)) {
|
if (!validChecksums.includes(sha)) {
|
||||||
invalidWrapperJars.push(wrapperJar);
|
invalidWrapperJars.push(new InvalidWrapperJar(wrapperJar, sha));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return invalidWrapperJars;
|
return invalidWrapperJars;
|
||||||
|
@ -962,6 +963,13 @@ function findInvalidWrapperJars(gitRepoRoot, allowSnapshots, allowChecksums) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.findInvalidWrapperJars = findInvalidWrapperJars;
|
exports.findInvalidWrapperJars = findInvalidWrapperJars;
|
||||||
|
class InvalidWrapperJar {
|
||||||
|
constructor(path, checksum) {
|
||||||
|
this.path = path;
|
||||||
|
this.checksum = checksum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.InvalidWrapperJar = InvalidWrapperJar;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
|
@ -13,7 +13,12 @@ export async function run(): Promise<void> {
|
||||||
allowChecksums
|
allowChecksums
|
||||||
)
|
)
|
||||||
if (invalidWrapperJars.length > 0) {
|
if (invalidWrapperJars.length > 0) {
|
||||||
core.setFailed(`Invalid wrapper jars ${invalidWrapperJars}`)
|
const list = invalidWrapperJars.map(
|
||||||
|
invalid => `${invalid.checksum} ${invalid.path}`
|
||||||
|
)
|
||||||
|
core.setFailed(
|
||||||
|
`Found unknown Gradle Wrapper JAR files\n${list.join('\n- ')}`
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message)
|
core.setFailed(error.message)
|
||||||
|
|
|
@ -6,19 +6,28 @@ export async function findInvalidWrapperJars(
|
||||||
gitRepoRoot: string,
|
gitRepoRoot: string,
|
||||||
allowSnapshots: boolean,
|
allowSnapshots: boolean,
|
||||||
allowChecksums: string[]
|
allowChecksums: string[]
|
||||||
): Promise<string[]> {
|
): Promise<InvalidWrapperJar[]> {
|
||||||
const wrapperJars = await find.findWrapperJars(gitRepoRoot)
|
const wrapperJars = await find.findWrapperJars(gitRepoRoot)
|
||||||
if (wrapperJars.length > 0) {
|
if (wrapperJars.length > 0) {
|
||||||
const validChecksums = await checksums.fetchValidChecksums(allowSnapshots)
|
const validChecksums = await checksums.fetchValidChecksums(allowSnapshots)
|
||||||
validChecksums.push(...allowChecksums)
|
validChecksums.push(...allowChecksums)
|
||||||
const invalidWrapperJars: string[] = []
|
const invalidWrapperJars: InvalidWrapperJar[] = []
|
||||||
for (const wrapperJar of wrapperJars) {
|
for (const wrapperJar of wrapperJars) {
|
||||||
const sha = await hash.sha256File(wrapperJar)
|
const sha = await hash.sha256File(wrapperJar)
|
||||||
if (!validChecksums.includes(sha)) {
|
if (!validChecksums.includes(sha)) {
|
||||||
invalidWrapperJars.push(wrapperJar)
|
invalidWrapperJars.push(new InvalidWrapperJar(wrapperJar, sha))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return invalidWrapperJars
|
return invalidWrapperJars
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class InvalidWrapperJar {
|
||||||
|
path: string
|
||||||
|
checksum: string
|
||||||
|
constructor(path: string, checksum: string) {
|
||||||
|
this.path = path
|
||||||
|
this.checksum = checksum
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue