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

Save workspace cache when run failed #631

Conversation

EnviousSwan
Copy link
Contributor

@EnviousSwan EnviousSwan commented Sep 7, 2024

Fixes #632

Cache from previously failed attempts is restored
And then it's also saved if current attempt fails

image

@EnviousSwan EnviousSwan marked this pull request as ready for review September 7, 2024 12:15
@EnviousSwan EnviousSwan closed this Sep 7, 2024
@EnviousSwan EnviousSwan reopened this Sep 7, 2024
Copy link
Contributor

github-actions bot commented Sep 7, 2024

A snapshot release has been created as snapshots/631.

You can test it out with:

uses: scala-steward-org/scala-steward-action@snapshots/631

It will be automatically recreated on any change to this PR.

github-actions bot added a commit that referenced this pull request Sep 7, 2024
Copy link
Contributor

@exoego exoego left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change makes sense to me.

Copy link
Contributor

github-actions bot commented Sep 7, 2024

Code Coverage

Package Line Rate Branch Rate Complexity Health
core 100% 100% 0
modules 69% 88% 0
Summary 70% (475 / 677) 89% (73 / 82) 0

@exoego exoego merged commit d9619bf into scala-steward-org:master Sep 7, 2024
4 checks passed
@exoego
Copy link
Contributor

exoego commented Sep 7, 2024

Thanks!

@EnviousSwan EnviousSwan deleted the save-workspace-cache-when-failed branch September 8, 2024 07:16
rtyley added a commit to rtyley/scala-steward-action that referenced this pull request Nov 1, 2024
Scala Steward's GitHub Action Job Summary, which details success or failure
of each repo in the Scala Steward run, was added with
scala-steward-org/scala-steward#3071 in June 2023,
followed up by scala-steward-org/scala-steward#3088,
which ensured that old `run-summary.md` files couldn't persist in the
workspace cache (where they might become misleading), by purging them before
the cache was saved.

Unfortunately scala-steward-org#631
(released with v2.67.0 in September 2024) unintentionally broke the outputting
of the Job Summary, because it moved the `saveWorkspaceCache()` call (which
among other things deletes the `run-summary.md` file) to a point _before_
the `run-summary.md` file was read and output to the GitHub Action Job Summary.

We can see this in these two successive runs of the Guardian's Scala Steward
workflow:

* Run 6002 (using [email protected]) successfully output the scala-steward summary:
  https://github.com/guardian/scala-steward-public-repos/actions/runs/11591772739
  https://github.com/guardian/scala-steward-public-repos/actions/runs/11591772739/job/32272232470#step:7:4512

* Run 6003 (using [email protected]) silently omitted to output the summary:
  https://github.com/guardian/scala-steward-public-repos/actions/runs/11592668893
  https://github.com/guardian/scala-steward-public-repos/actions/runs/11592668893/job/32275051343#step:7:35

The fix is just to move the code writing the run-summary earlier, to _before_ the new
`finally` block introduced by scala-steward-org#631 which executes `saveWorkspaceCache()`.

I've also renamed the method to make its actions a little clearer:

* OLD: `workspace.saveWorkspaceCache()`
* NEW: `workspace.purgeTempFilesAndSaveCache()`
Comment on lines +79 to -86
} finally {
await workspace.saveWorkspaceCache()
}

if (files.existsSync(workspace.runSummary_md)) {
logger.info(`✓ Run Summary file: ${workspace.runSummary_md}`)

const summaryMarkdown = files.readFileSync(workspace.runSummary_md, 'utf8')
await core.summary.addRaw(summaryMarkdown).write()
}

await workspace.saveWorkspaceCache()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, small problem here! The saveWorkspaceCache() method deletes temporary files (like run-summary.md) before saving the cache, and moving saveWorkspaceCache() to before the run-summary processing-code unfortunately means that the run-summary.md is deleted before it's even read..!

See this PR for the fix:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Workspace cache is not saved when scala-steward run fails
3 participants