Treat directory for instrumented jar as single artifact

Leaving the `.lock` and `.receipt` files lying around was causing
issues when the actual jar files were not restored. Now the entire
directory will either be missing, or completely restored.
This commit is contained in:
Daz DeBoer 2021-10-15 14:54:29 -06:00
parent 8b1f1a3817
commit 709ded51a5
No known key found for this signature in database
GPG Key ID: DD6B9F0B06683D5D
2 changed files with 8 additions and 3 deletions

View File

@ -38,7 +38,7 @@ inputs:
["generated-gradle-jars", "caches/*/generated-gradle-jars/*.jar"],
["wrapper-zips", "wrapper/dists/*/*/*.zip"],
["dependency-jars", "caches/modules-*/files-*/**/*.jar"],
["instrumented-jars", "caches/jars-*/*/*.jar"]
["instrumented-jars", "caches/jars-*/*"]
]
outputs:

View File

@ -62,12 +62,17 @@ export function hashFileNames(fileNames: string[]): string {
}
/**
* Attempt to delete a file, waiting to allow locks to be released
* Attempt to delete a file or directory, waiting to allow locks to be released
*/
export async function tryDelete(file: string): Promise<void> {
const stat = fs.lstatSync(file)
for (let count = 0; count < 3; count++) {
try {
fs.unlinkSync(file)
if (stat.isDirectory()) {
fs.rmdirSync(file, {recursive: true})
} else {
fs.unlinkSync(file)
}
return
} catch (error) {
if (count === 2) {