Add support for dependency caching.

- Fork relevant bits from https://github.com/actions/setup-java
- Use Node.js 16
- Adjust packaging
- Update uuid and other dependencies

Closes #11
This commit is contained in:
Fabio Niephaus
2022-08-31 10:07:18 +02:00
parent c2b9039d01
commit f47d45565a
27 changed files with 140566 additions and 15577 deletions

65
src/cleanup.ts Normal file
View File

@@ -0,0 +1,65 @@
/**
* The MIT License (MIT)
*
* Copyright (c) 2018 GitHub, Inc. and contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Forked from https://github.com/actions/setup-java/blob/5b36705a13905facb447b6812d613a06a07e371d/src/cleanup-java.ts
*/
import * as core from '@actions/core'
import * as constants from './constants'
import {isJobStatusSuccess} from './utils'
import {save} from './cache'
/**
* Check given input and run a save process for the specified package manager
* @returns Promise that will be resolved when the save process finishes
*/
async function saveCache(): Promise<void> {
const jobStatus = isJobStatusSuccess()
const cache = core.getInput(constants.INPUT_CACHE)
return jobStatus && cache ? save(cache) : Promise.resolve()
}
/**
* The save process is best-effort, and it should not make the workflow fail
* even though this process throws an error.
* @param promise the promise to ignore error from
* @returns Promise that will ignore error reported by the given promise
*/
async function ignoreError(promise: Promise<void>): Promise<void> {
try {
await promise
} catch (error) {
core.warning(error)
}
}
export async function run(): Promise<void> {
await ignoreError(saveCache())
}
if (require.main === module) {
run()
} else {
// https://nodejs.org/api/modules.html#modules_accessing_the_main_module
core.info('the script is loaded as a module, so skipping the execution')
}