Skip to content

Commit 667dbc2

Browse files
Document controlled major workflow tags
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent b3c95e6 commit 667dbc2

4 files changed

Lines changed: 27 additions & 10 deletions

File tree

docs/content/get-started/repository-setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ permissions:
6666
jobs:
6767
Process-PSModule:
6868
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
69-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
69+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
7070
secrets:
7171
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
7272
GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }}

docs/content/guides/calling-the-workflow.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ permissions:
4949
jobs:
5050
Process-PSModule:
5151
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
52-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
52+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
5353
secrets:
5454
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
5555
GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }}
@@ -68,6 +68,11 @@ the PowerShell Gallery, GitHub Releases, and tags, so later runs must queue rath
6868
The reusable workflow uses its own prefixed concurrency group, so it cannot queue behind the caller while the caller
6969
waits for it to finish.
7070

71+
`Process-PSModule` is PSModule-owned automation, so callers use the controlled floating major tag (`@v8`). Compatible
72+
patch and minor releases move that tag through the release workflow. A breaking release publishes a new major tag and
73+
uses a deliberate fleet campaign rather than moving `v8` across the breaking boundary. External actions remain pinned
74+
to full commit SHAs.
75+
7176
The job condition skips fork-originated pull requests because GitHub does not expose the required repository secrets to
7277
forks. Use a separate secret-free, read-only workflow if the repository accepts contributions from forks and requires
7378
fork CI.
@@ -100,7 +105,7 @@ changes:
100105
jobs:
101106
Process-PSModule:
102107
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
103-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
108+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
104109
secrets:
105110
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
106111
GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }}
@@ -130,7 +135,7 @@ content lines stay at the same indentation level:
130135
jobs:
131136
Process-PSModule:
132137
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
133-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
138+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
134139
secrets:
135140
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
136141
GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }}
@@ -243,7 +248,7 @@ You can also pass patterns via the workflow input:
243248
jobs:
244249
Process:
245250
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
246-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
251+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
247252
with:
248253
ImportantFilePatterns: |
249254
^src/
@@ -257,7 +262,7 @@ To disable triggering via the workflow input, pass an explicit empty string:
257262
jobs:
258263
process:
259264
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
260-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
265+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
261266
with:
262267
ImportantFilePatterns: ''
263268
```

docs/content/guides/github-app-authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ names. Map the caller's secrets explicitly:
2424
jobs:
2525
Process-PSModule:
2626
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
27-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@5a11e8e8b018faf97017e0416f136a751c026713 # v8.0.0
27+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
2828
secrets:
2929
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
3030
GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }}

docs/content/reference/repository-standard.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,22 @@ The caller workflow declares the triggers, concurrency, and permissions for the
123123
jobs:
124124
Process-PSModule:
125125
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
126-
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@<commit-sha> # <version tag>
126+
uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8
127127
secrets:
128128
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
129129
GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }}
130130
GitHubAppPrivateKey: ${{ secrets.SHELLY_PRIVATE_KEY }}
131131
```
132132
133-
Name the caller file `Process-PSModule.yml`, matching [`PSModule/Template-PSModule`](https://github.com/PSModule/Template-PSModule) and every existing module repository. `workflow.yml` is the reusable workflow's own filename inside `PSModule/Process-PSModule` and belongs only in the `uses:` reference. Pin the reference to a commit SHA with the version tag in a trailing comment so Dependabot can update it.
133+
Name the caller file `Process-PSModule.yml`, matching [`PSModule/Template-PSModule`](https://github.com/PSModule/Template-PSModule) and every existing module repository. `workflow.yml` is the reusable workflow's own filename inside `PSModule/Process-PSModule` and belongs only in the `uses:` reference.
134+
135+
`Process-PSModule` is PSModule-owned automation. Pin it to the approved floating major tag (`v8`) so compatible patch
136+
and minor releases move across the fleet without one pull request per release. The release workflow owns movement of
137+
the major tag; an incompatible release creates a new major tag and requires a deliberate fleet campaign. Do not use a
138+
branch, `latest`, a floating minor tag, or an exact release/commit for the standard caller.
139+
140+
This internal-major-tag policy does not apply to third-party actions. External actions remain pinned to their full
141+
immutable commit SHA with the release version in a trailing comment.
134142

135143
## Required common files
136144

@@ -194,7 +202,11 @@ For PSModule module repositories, the requirements are:
194202

195203
Every module repository must include `.github/dependabot.yml`. Dependabot is part of the repository supply-chain control, not an optional convenience.
196204

197-
Configure the `github-actions` ecosystem. It keeps the pinned actions current, including the pinned `PSModule/Process-PSModule` reference in the [caller workflow](#caller-workflow-and-reusable-workflow). This is what [`PSModule/Template-PSModule`](https://github.com/PSModule/Template-PSModule) ships, and it is the default for new repositories:
205+
Configure the `github-actions` ecosystem. It keeps external SHA-pinned actions current and proposes intentional major
206+
updates when supported. Compatible Process-PSModule patch and minor releases arrive through its controlled major tag
207+
instead of a Dependabot pull request. This is what
208+
[`PSModule/Template-PSModule`](https://github.com/PSModule/Template-PSModule) ships, and it is the default for new
209+
repositories:
198210

199211
```yaml
200212
version: 2

0 commit comments

Comments
 (0)