diff --git a/__tests__/cleanup-java.test.ts b/__tests__/cleanup-java.test.ts index 658c2aee7..b3f2b52cc 100644 --- a/__tests__/cleanup-java.test.ts +++ b/__tests__/cleanup-java.test.ts @@ -1,6 +1,7 @@ import { run as cleanup } from '../src/cleanup-java'; import * as core from '@actions/core'; import * as cache from '@actions/cache'; +import * as util from '../src/util'; describe('cleanup', () => { let spyWarning: jest.SpyInstance>; @@ -8,10 +9,13 @@ describe('cleanup', () => { ReturnType, Parameters >; + let spyJobStatusSuccess: jest.SpyInstance; beforeEach(() => { spyWarning = jest.spyOn(core, 'warning'); spyCacheSave = jest.spyOn(cache, 'saveCache'); + spyJobStatusSuccess = jest.spyOn(util, 'isJobStatusSuccess'); + spyJobStatusSuccess.mockReturnValue(true); createStateForSuccessfulRestore(); }); afterEach(() => { diff --git a/action.yml b/action.yml index 5f04f2359..faad23c38 100644 --- a/action.yml +++ b/action.yml @@ -56,6 +56,9 @@ inputs: cache: description: 'Name of the build platform to cache dependencies. It can be "maven" or "gradle".' required: false + job-status: + description: 'Workaround to pass job status to post job step. This variable is not intended for manual setting' + default: ${{ job.status }} outputs: distribution: description: 'Distribution of Java that has been installed' diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js index bf3de9dc4..5a7f5bdd3 100644 --- a/dist/cleanup/index.js +++ b/dist/cleanup/index.js @@ -6185,6 +6185,7 @@ exports.run = void 0; const core = __importStar(__webpack_require__(470)); const gpg = __importStar(__webpack_require__(884)); const constants = __importStar(__webpack_require__(694)); +const util_1 = __webpack_require__(322); const cache_1 = __webpack_require__(913); function removePrivateKeyFromKeychain() { return __awaiter(this, void 0, void 0, function* () { @@ -6206,8 +6207,9 @@ function removePrivateKeyFromKeychain() { */ function saveCache() { return __awaiter(this, void 0, void 0, function* () { + const jobStatus = util_1.isJobStatusSuccess(); const cache = core.getInput(constants.INPUT_CACHE); - return cache ? cache_1.save(cache) : Promise.resolve(); + return jobStatus && cache ? cache_1.save(cache) : Promise.resolve(); }); } /** @@ -9894,7 +9896,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; +exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; const os_1 = __importDefault(__webpack_require__(87)); const path_1 = __importDefault(__webpack_require__(622)); const fs = __importStar(__webpack_require__(747)); @@ -9965,6 +9967,11 @@ function getToolcachePath(toolName, version, architecture) { return null; } exports.getToolcachePath = getToolcachePath; +function isJobStatusSuccess() { + const jobStatus = core.getInput('job-status'); + return jobStatus === 'success'; +} +exports.isJobStatusSuccess = isJobStatusSuccess; /***/ }), diff --git a/dist/setup/index.js b/dist/setup/index.js index be2109c74..2c9b490d7 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -19083,7 +19083,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; +exports.isJobStatusSuccess = exports.getToolcachePath = exports.isVersionSatisfies = exports.getDownloadArchiveExtension = exports.extractJdkFile = exports.getVersionFromToolcachePath = exports.getBooleanInput = exports.getTempDir = void 0; const os_1 = __importDefault(__webpack_require__(87)); const path_1 = __importDefault(__webpack_require__(622)); const fs = __importStar(__webpack_require__(747)); @@ -19154,6 +19154,11 @@ function getToolcachePath(toolName, version, architecture) { return null; } exports.getToolcachePath = getToolcachePath; +function isJobStatusSuccess() { + const jobStatus = core.getInput('job-status'); + return jobStatus === 'success'; +} +exports.isJobStatusSuccess = isJobStatusSuccess; /***/ }), diff --git a/src/cleanup-java.ts b/src/cleanup-java.ts index b0a3b2731..8c6fced11 100644 --- a/src/cleanup-java.ts +++ b/src/cleanup-java.ts @@ -1,6 +1,7 @@ import * as core from '@actions/core'; import * as gpg from './gpg'; import * as constants from './constants'; +import { isJobStatusSuccess } from './util'; import { save } from './cache'; async function removePrivateKeyFromKeychain() { @@ -20,8 +21,9 @@ async function removePrivateKeyFromKeychain() { * @returns Promise that will be resolved when the save process finishes */ async function saveCache() { + const jobStatus = isJobStatusSuccess(); const cache = core.getInput(constants.INPUT_CACHE); - return cache ? save(cache) : Promise.resolve(); + return jobStatus && cache ? save(cache) : Promise.resolve(); } /** diff --git a/src/util.ts b/src/util.ts index 080597a9a..89beca063 100644 --- a/src/util.ts +++ b/src/util.ts @@ -69,3 +69,9 @@ export function getToolcachePath(toolName: string, version: string, architecture return null; } + +export function isJobStatusSuccess() { + const jobStatus = core.getInput('job-status'); + + return jobStatus === 'success'; +}