Move CreateRelease update check to separate job - #2355
Conversation
Run the existing AL-Go system file update check independently in both release templates. Add coverage for runner and shell transformations and document the parallel execution.
There was a problem hiding this comment.
Pull request overview
Moves update checks into a parallel job so release creation no longer waits for them.
Changes:
- Adds independent
CheckForUpdatesjobs to both release templates. - Adds tests for runner and shell customization.
- Updates documentation and release notes.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
Tests/CheckForUpdates.Action.Test.ps1 |
Tests runner and shell modification behavior. |
Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml |
Separates the update check from release creation. |
Templates/AppSource App/.github/workflows/CreateRelease.yaml |
Separates the update check from release creation. |
Scenarios/CreateRelease.md |
Documents the independent update-check job. |
RELEASENOTES.md |
Announces the workflow improvement. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
🟡 Changes recommended
Both reporting-only jobs must be restricted to job-level read permissions while retaining id-token: write.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Suppressed comments (4)
Templates/AppSource App/.github/workflows/CreateRelease.yaml:129
- The update-check cleanup also needs to stop explicitly requesting
ghTokenWorkflowin theCreateReleasejob. That job now only consumesTokenForPush, andReadSecretsalready resolvesghTokenWorkflowwhenuseGhTokenWorkflowForPushis true; leaving it in the list retrieves and emits the secret even when that option is false.
get: repoName,type,powerPlatformSolutionFolder
Templates/AppSource App/.github/workflows/CreateRelease.yaml:70
- Add
CheckForUpdatestoPostProcess.needs. As written,PostProcesscan run while this independent job is still in progress;WorkflowPostProcessthen queries job conclusions and records success/duration before this check finishes, so a later failure or delay is omitted from telemetry. Waiting only inPostProcesspreserves parallel release creation while ensuring finalization is actually last.
CheckForUpdates:
Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml:129
- The update-check cleanup also needs to stop explicitly requesting
ghTokenWorkflowin theCreateReleasejob. That job now only consumesTokenForPush, andReadSecretsalready resolvesghTokenWorkflowwhenuseGhTokenWorkflowForPushis true; leaving it in the list retrieves and emits the secret even when that option is false.
get: repoName,type,powerPlatformSolutionFolder
Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml:70
- Add
CheckForUpdatestoPostProcess.needs. As written,PostProcesscan run while this independent job is still in progress;WorkflowPostProcessthen queries job conclusions and records success/duration before this check finishes, so a later failure or delay is omitted from telemetry. Waiting only inPostProcesspreserves parallel release creation while ensuring finalization is actually last.
CheckForUpdates:
- Files reviewed: 5/5 changed files
- Comments generated: 2
- Review effort level: Balanced
| CheckForUpdates: | ||
| runs-on: [ windows-latest ] |
There was a problem hiding this comment.
I’m not sure about that. At the moment, it’s identical to CICD.yaml.
Maria Zhelezova (@mazhelez), what do you think?
| CheckForUpdates: | ||
| runs-on: [ windows-latest ] |
There was a problem hiding this comment.
I’m not sure about that. At the moment, it’s identical to CICD.yaml.
Maria Zhelezova (@mazhelez), what do you think?
❔What, Why & How
Change
This PR moves the existing AL-Go system file update check out of the
CreateReleasejob and into a dedicatedCheckForUpdatesjob.The change applies to both the AppSource App and Per Tenant Extension release templates.
The update check does not need to block release creation. With a separate job,
CheckForUpdatescan run in parallel withCreateRelease, so release creation no longer has to wait for the check to complete.The check itself remains reporting-only. Updates are still applied through the existing
Update AL-Go System Filesworkflow.Additional test coverage
While working on this, I noticed that the existing
ModifyRunsOnAndShelllogic had no test coverage.I added tests for the existing behavior, including workflows with multiple jobs and the validation of invalid runner/shell combinations.
Open question
While looking at the update check, I also started wondering whether we need it in the
Create Releaseworkflow at all.In many cases,
CI/CDhas already run shortly before creating a release and performed the same check. I am not sure the additional check during release creation provides much value.Would it make sense to remove it from
Create Releaseentirely? If so, I can adjust this PR accordingly.✅ Checklist