Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix delete cache #1080

Merged
merged 2 commits into from Aug 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -29,8 +29,8 @@ You can find more information about the required permissions under the correspon
## Statefulness

If the action ends because of [operations-per-run](#operations-per-run) then the next run will start from the first
unprocessed issue skipping the issues proceeded during the previous run(s). The state is reset when all the issues are
proceeded. This should be considered for scheduling workflow runs.
unprocessed issue skipping the issues processed during the previous run(s). The state is reset when all the issues are
processed. This should be considered for scheduling workflow runs.

The saved state lifetime is the same as the
[actions cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy)
Expand Down
7 changes: 5 additions & 2 deletions dist/index.js
Expand Up @@ -1636,7 +1636,7 @@ const resetCacheWithOctokit = (cacheKey) => __awaiter(void 0, void 0, void 0, fu
}
catch (error) {
if (error.status) {
core.debug(`Cache ${cacheKey} does not exist`);
core.warning(`Error delete ${cacheKey}: [${error.status}] ${error.message || 'Unknown reason'}`);
}
else {
throw error;
Expand All @@ -1650,7 +1650,10 @@ class StateCacheStorage {
const filePath = path_1.default.join(tmpDir, STATE_FILE);
fs_1.default.writeFileSync(filePath, serializedState);
try {
yield resetCacheWithOctokit(CACHE_KEY);
const cacheExists = yield checkIfCacheExists(CACHE_KEY);
if (cacheExists) {
yield resetCacheWithOctokit(CACHE_KEY);
}
const fileSize = fs_1.default.statSync(filePath).size;
if (fileSize === 0) {
core.info(`the state will be removed`);
Expand Down
11 changes: 9 additions & 2 deletions src/classes/state/state-cache-storage.ts
Expand Up @@ -54,7 +54,11 @@ const resetCacheWithOctokit = async (cacheKey: string): Promise<void> => {
);
} catch (error) {
if (error.status) {
core.debug(`Cache ${cacheKey} does not exist`);
core.warning(
`Error delete ${cacheKey}: [${error.status}] ${
error.message || 'Unknown reason'
}`
);
} else {
throw error;
}
Expand All @@ -67,7 +71,10 @@ export class StateCacheStorage implements IStateStorage {
fs.writeFileSync(filePath, serializedState);

try {
await resetCacheWithOctokit(CACHE_KEY);
const cacheExists = await checkIfCacheExists(CACHE_KEY);
if (cacheExists) {
await resetCacheWithOctokit(CACHE_KEY);
}
const fileSize = fs.statSync(filePath).size;

if (fileSize === 0) {
Expand Down