The workflows in this repository deviate from the organization's GitHub Actions coding standard. CI here is defined by this repository's own inline workflows (it does not consume a shared reusable workflow), so the corrections are applied directly in this repository.
Request
1. Pin the runner image
The standard requires pinning runs-on to a specific image (ubuntu-24.04) rather than ubuntu-latest, so a runner upgrade is a deliberate, reviewable change rather than a silent one.
Workflows currently using a -latest runner:
Action-Test.yml (direct)
Auto-Release.yml (direct)
Linter.yml (direct)
2. Queue release runs instead of cancelling mid-publish
The standard requires cancel-in-progress: false for workflows that publish, deploy, or mutate shared state, so a release run queues rather than aborting mid-write.
Auto-Release.yml currently sets cancel-in-progress: true and creates a release, so it must be false.
3. Name and place the entry script per the standard
The standard places a single-file action's entry script at the action root as main.ps1, or under src/ for a multi-file action. This action's entry script lives at scripts/main.ps1.
Acceptance criteria
- No workflow uses a
-latest runner; every runs-on names a specific image (e.g. ubuntu-24.04).
- The release workflow sets
cancel-in-progress: false.
- Test and lint workflows may keep
cancel-in-progress: true (cancelling superseded runs is fine).
- The entry script is
main.ps1 at the action root (or src/main.ps1), and action.yml references the new path.
Technical decisions
Runner image. Replace ubuntu-latest with ubuntu-24.04.
Concurrency. Set cancel-in-progress: false on the release workflow only. Test and lint workflows keep cancel-in-progress: true — cancelling a superseded test run is desirable and is not a publish action.
Entry script. Move scripts/main.ps1 to src/main.ps1 (or to main.ps1 at the action root) and update the run: reference in action.yml accordingly.
Scaffold. This repository is the action scaffold: new action repositories inherit these workflows, so fixing them here stops the deviation from propagating to future repositories.
Out of scope. Dependabot update grouping and semver update labels are intentionally not used and are excluded here (see the standard update in MSXOrg/docs#19 and PSModule/Process-PSModule#359).
Implementation plan
The workflows in this repository deviate from the organization's GitHub Actions coding standard. CI here is defined by this repository's own inline workflows (it does not consume a shared reusable workflow), so the corrections are applied directly in this repository.
Request
1. Pin the runner image
The standard requires pinning
runs-onto a specific image (ubuntu-24.04) rather thanubuntu-latest, so a runner upgrade is a deliberate, reviewable change rather than a silent one.Workflows currently using a
-latestrunner:Action-Test.yml(direct)Auto-Release.yml(direct)Linter.yml(direct)2. Queue release runs instead of cancelling mid-publish
The standard requires
cancel-in-progress: falsefor workflows that publish, deploy, or mutate shared state, so a release run queues rather than aborting mid-write.Auto-Release.ymlcurrently setscancel-in-progress: trueand creates a release, so it must befalse.3. Name and place the entry script per the standard
The standard places a single-file action's entry script at the action root as
main.ps1, or undersrc/for a multi-file action. This action's entry script lives atscripts/main.ps1.Acceptance criteria
-latestrunner; everyruns-onnames a specific image (e.g.ubuntu-24.04).cancel-in-progress: false.cancel-in-progress: true(cancelling superseded runs is fine).main.ps1at the action root (orsrc/main.ps1), andaction.ymlreferences the new path.Technical decisions
Runner image. Replace
ubuntu-latestwithubuntu-24.04.Concurrency. Set
cancel-in-progress: falseon the release workflow only. Test and lint workflows keepcancel-in-progress: true— cancelling a superseded test run is desirable and is not a publish action.Entry script. Move
scripts/main.ps1tosrc/main.ps1(or tomain.ps1at the action root) and update therun:reference inaction.ymlaccordingly.Scaffold. This repository is the action scaffold: new action repositories inherit these workflows, so fixing them here stops the deviation from propagating to future repositories.
Out of scope. Dependabot update grouping and semver update labels are intentionally not used and are excluded here (see the standard update in MSXOrg/docs#19 and PSModule/Process-PSModule#359).
Implementation plan
Action-Test.yml: replace-latestrunner(s) with pinned imageAuto-Release.yml: replace-latestrunner(s) with pinned image; setcancel-in-progress: falseLinter.yml: replace-latestrunner(s) with pinned imagescripts/main.ps1->src/main.ps1and updateaction.ymlactionlintandzizmorpass via the linter workflow