Skip to content

Commit

Permalink
Fix loss of run-summary.md in GHA Job Summary
Browse files Browse the repository at this point in the history
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 #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 #631 which executes `saveWorkspaceCache()`.

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

* OLD: `workspace.saveWorkspaceCache()`
* NEW: `workspace.purgeTempFilesAndSaveCache()`
  • Loading branch information
rtyley committed Nov 1, 2024
1 parent 6661cf3 commit 14e5aef
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
16 changes: 8 additions & 8 deletions src/action/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,16 @@ async function run(): Promise<void> {
'--disable-sandbox',
inputs.steward.extraArgs?.value.split(' ') ?? [],
], inputs.steward.extraJars)
} finally {
await workspace.saveWorkspaceCache()
await workspace.cancelTokenRefresh()
}

if (files.existsSync(workspace.runSummary_md)) {
logger.info(`✓ Run Summary file: ${workspace.runSummary_md}`)
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()
const summaryMarkdown = files.readFileSync(workspace.runSummary_md, 'utf8')
await core.summary.addRaw(summaryMarkdown).write()
}
} finally {
await workspace.purgeTempFilesAndSaveCache()
await workspace.cancelTokenRefresh()
}
} catch (error: unknown) {
core.setFailed(` ✕ ${(error as Error).message}`)
Expand Down
2 changes: 1 addition & 1 deletion src/modules/workspace.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ test('`Workspace.restoreWorkspaceCache()` → generates different hash for diffe
test('`Workspace.saveWorkspaceCache()` → saves cache', async t => {
const {workspace, calls} = fixture('- owner/repo')

await workspace.saveWorkspaceCache()
await workspace.purgeTempFilesAndSaveCache()

const now = Date.now()

Expand Down
2 changes: 1 addition & 1 deletion src/modules/workspace.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export class Workspace {
*
* @param {string} workspace - the Scala Steward workspace directory
*/
async saveWorkspaceCache(): Promise<void> {
async purgeTempFilesAndSaveCache(): Promise<void> {
try {
this.logger.startGroup('Saving workspace to cache...')

Expand Down

0 comments on commit 14e5aef

Please sign in to comment.