Skip to content

Tags: PSModule/Publish-PSModule

Tags

v3.0.0

Toggle v3.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🌟 [Major]: Version calculation removed — artifact must be pre-stamped…

… before publish (#71)

`Publish-PSModule` no longer calculates or mutates the module version.
The artifact passed in must already contain the final `ModuleVersion`
(and `Prerelease` tag, if any) stamped by the upstream build. Published
GitHub Releases now include a downloadable zip of the exact module
folder that was tested and pushed to the Gallery.

## Breaking Changes

Version-calculation inputs have been removed. Callers must supply a
pre-stamped artifact:

**Removed inputs:**

- `AutoPatching`
- `IncrementalPrerelease`
- `DatePrereleaseFormat`
- `VersionPrefix`
- `MajorLabels`, `MinorLabels`, `PatchLabels`, `IgnoreLabels`
- `ReleaseType`

**Migration:** Consumers on `PSModule/Process-PSModule` get this for
free — the workflow resolves the version in the Plan job and stamps it
during Build. Direct callers outside of `Process-PSModule` must use
[`Resolve-PSModuleVersion`](https://github.com/PSModule/Resolve-PSModuleVersion)
to compute the version and
[`Build-PSModule`](https://github.com/PSModule/Build-PSModule) v5+ to
stamp it before invoking this action.

## New: Module zip uploaded to GitHub Release

After creating a GitHub Release, the module folder is zipped
(`<Name>-<Version>.zip`) and uploaded as a release asset. The zip
preserves the `<Name>/` directory structure so it can be extracted
directly into a PowerShell module path.

## Changed: Cleanup only runs after stable releases

The cleanup step (which removes old prerelease tags/releases) now only
executes when the publish was a stable release. Previously it could
inadvertently delete the just-published prerelease. Cleanup also filters
on `isPrerelease` to avoid accidentally deleting stable releases whose
tag happens to match the derived prerelease name.

## Technical Details

- Deleted `src/init.ps1` (the old version-calculation script).
- `src/publish.ps1` reads `ModuleVersion` and `Prerelease` directly from
the downloaded manifest via `Import-PowerShellDataFile`, validates
3-part format, then publishes untouched via `Publish-PSResource`.
- `Test-ModuleManifest` is called as advisory validation
(non-terminating) since the built artifact may reference
`RequiredModules` not installed on the runner. Structural validation is
enforced by explicit regex guards on `ModuleVersion` and `Prerelease`.
- `src/cleanup.ps1` derives the prerelease name from the PR head ref,
filters on `isPrerelease`, and explicitly excludes the just-published
release tag from deletion.
- `action.yml` cleanup step gated on
`env.PSMODULE_PUBLISH_PSMODULE_CONTEXT_IsPrerelease != 'true'`.
- `GITHUB_ENV` writes use `utf8NoBOM` encoding to prevent BOM
corruption.
- Zip upload and temp file cleanup wrapped in `try/finally` for reliable
cleanup on failure.

<details><summary>Related issues</summary>

- Fixes PSModule/Process-PSModule#326
- PSModule/Process-PSModule#342
- PSModule/Resolve-PSModuleVersion#1
- PSModule/Build-PSModule#136

</details>

v3.0

Toggle v3.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🌟 [Major]: Version calculation removed — artifact must be pre-stamped…

… before publish (#71)

`Publish-PSModule` no longer calculates or mutates the module version.
The artifact passed in must already contain the final `ModuleVersion`
(and `Prerelease` tag, if any) stamped by the upstream build. Published
GitHub Releases now include a downloadable zip of the exact module
folder that was tested and pushed to the Gallery.

## Breaking Changes

Version-calculation inputs have been removed. Callers must supply a
pre-stamped artifact:

**Removed inputs:**

- `AutoPatching`
- `IncrementalPrerelease`
- `DatePrereleaseFormat`
- `VersionPrefix`
- `MajorLabels`, `MinorLabels`, `PatchLabels`, `IgnoreLabels`
- `ReleaseType`

**Migration:** Consumers on `PSModule/Process-PSModule` get this for
free — the workflow resolves the version in the Plan job and stamps it
during Build. Direct callers outside of `Process-PSModule` must use
[`Resolve-PSModuleVersion`](https://github.com/PSModule/Resolve-PSModuleVersion)
to compute the version and
[`Build-PSModule`](https://github.com/PSModule/Build-PSModule) v5+ to
stamp it before invoking this action.

## New: Module zip uploaded to GitHub Release

After creating a GitHub Release, the module folder is zipped
(`<Name>-<Version>.zip`) and uploaded as a release asset. The zip
preserves the `<Name>/` directory structure so it can be extracted
directly into a PowerShell module path.

## Changed: Cleanup only runs after stable releases

The cleanup step (which removes old prerelease tags/releases) now only
executes when the publish was a stable release. Previously it could
inadvertently delete the just-published prerelease. Cleanup also filters
on `isPrerelease` to avoid accidentally deleting stable releases whose
tag happens to match the derived prerelease name.

## Technical Details

- Deleted `src/init.ps1` (the old version-calculation script).
- `src/publish.ps1` reads `ModuleVersion` and `Prerelease` directly from
the downloaded manifest via `Import-PowerShellDataFile`, validates
3-part format, then publishes untouched via `Publish-PSResource`.
- `Test-ModuleManifest` is called as advisory validation
(non-terminating) since the built artifact may reference
`RequiredModules` not installed on the runner. Structural validation is
enforced by explicit regex guards on `ModuleVersion` and `Prerelease`.
- `src/cleanup.ps1` derives the prerelease name from the PR head ref,
filters on `isPrerelease`, and explicitly excludes the just-published
release tag from deletion.
- `action.yml` cleanup step gated on
`env.PSMODULE_PUBLISH_PSMODULE_CONTEXT_IsPrerelease != 'true'`.
- `GITHUB_ENV` writes use `utf8NoBOM` encoding to prevent BOM
corruption.
- Zip upload and temp file cleanup wrapped in `try/finally` for reliable
cleanup on failure.

<details><summary>Related issues</summary>

- Fixes PSModule/Process-PSModule#326
- PSModule/Process-PSModule#342
- PSModule/Resolve-PSModuleVersion#1
- PSModule/Build-PSModule#136

</details>

v3

Toggle v3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🌟 [Major]: Version calculation removed — artifact must be pre-stamped…

… before publish (#71)

`Publish-PSModule` no longer calculates or mutates the module version.
The artifact passed in must already contain the final `ModuleVersion`
(and `Prerelease` tag, if any) stamped by the upstream build. Published
GitHub Releases now include a downloadable zip of the exact module
folder that was tested and pushed to the Gallery.

## Breaking Changes

Version-calculation inputs have been removed. Callers must supply a
pre-stamped artifact:

**Removed inputs:**

- `AutoPatching`
- `IncrementalPrerelease`
- `DatePrereleaseFormat`
- `VersionPrefix`
- `MajorLabels`, `MinorLabels`, `PatchLabels`, `IgnoreLabels`
- `ReleaseType`

**Migration:** Consumers on `PSModule/Process-PSModule` get this for
free — the workflow resolves the version in the Plan job and stamps it
during Build. Direct callers outside of `Process-PSModule` must use
[`Resolve-PSModuleVersion`](https://github.com/PSModule/Resolve-PSModuleVersion)
to compute the version and
[`Build-PSModule`](https://github.com/PSModule/Build-PSModule) v5+ to
stamp it before invoking this action.

## New: Module zip uploaded to GitHub Release

After creating a GitHub Release, the module folder is zipped
(`<Name>-<Version>.zip`) and uploaded as a release asset. The zip
preserves the `<Name>/` directory structure so it can be extracted
directly into a PowerShell module path.

## Changed: Cleanup only runs after stable releases

The cleanup step (which removes old prerelease tags/releases) now only
executes when the publish was a stable release. Previously it could
inadvertently delete the just-published prerelease. Cleanup also filters
on `isPrerelease` to avoid accidentally deleting stable releases whose
tag happens to match the derived prerelease name.

## Technical Details

- Deleted `src/init.ps1` (the old version-calculation script).
- `src/publish.ps1` reads `ModuleVersion` and `Prerelease` directly from
the downloaded manifest via `Import-PowerShellDataFile`, validates
3-part format, then publishes untouched via `Publish-PSResource`.
- `Test-ModuleManifest` is called as advisory validation
(non-terminating) since the built artifact may reference
`RequiredModules` not installed on the runner. Structural validation is
enforced by explicit regex guards on `ModuleVersion` and `Prerelease`.
- `src/cleanup.ps1` derives the prerelease name from the PR head ref,
filters on `isPrerelease`, and explicitly excludes the just-published
release tag from deletion.
- `action.yml` cleanup step gated on
`env.PSMODULE_PUBLISH_PSMODULE_CONTEXT_IsPrerelease != 'true'`.
- `GITHUB_ENV` writes use `utf8NoBOM` encoding to prevent BOM
corruption.
- Zip upload and temp file cleanup wrapped in `try/finally` for reliable
cleanup on failure.

<details><summary>Related issues</summary>

- Fixes PSModule/Process-PSModule#326
- PSModule/Process-PSModule#342
- PSModule/Resolve-PSModuleVersion#1
- PSModule/Build-PSModule#136

</details>

v2.2.4

Toggle v2.2.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump actions/download-artifact from 8.0.0 to 8.0.1 (#68)

Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 8.0.0 to 8.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Support for CJK characters in the artifact name by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/471">actions/download-artifact#471</a></li>
<li>Add a regression test for artifact name + content-type mismatches by
<a href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a>
in <a
href="https://redirect.github.com/actions/download-artifact/pull/472">actions/download-artifact#472</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v8...v8.0.1">https://github.com/actions/download-artifact/compare/v8...v8.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c"><code>3e5f45b</code></a>
Add regression tests for CJK characters (<a
href="https://redirect.github.com/actions/download-artifact/issues/471">#471</a>)</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e6d03f67377d4412c7aa56a8e2e4988e6ec479dd"><code>e6d03f6</code></a>
Add a regression test for artifact name + content-type mismatches (<a
href="https://redirect.github.com/actions/download-artifact/issues/472">#472</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=8.0.0&new-version=8.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v2.2

Toggle v2.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump actions/download-artifact from 8.0.0 to 8.0.1 (#68)

Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 8.0.0 to 8.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Support for CJK characters in the artifact name by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/471">actions/download-artifact#471</a></li>
<li>Add a regression test for artifact name + content-type mismatches by
<a href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a>
in <a
href="https://redirect.github.com/actions/download-artifact/pull/472">actions/download-artifact#472</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v8...v8.0.1">https://github.com/actions/download-artifact/compare/v8...v8.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c"><code>3e5f45b</code></a>
Add regression tests for CJK characters (<a
href="https://redirect.github.com/actions/download-artifact/issues/471">#471</a>)</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e6d03f67377d4412c7aa56a8e2e4988e6ec479dd"><code>e6d03f6</code></a>
Add a regression test for artifact name + content-type mismatches (<a
href="https://redirect.github.com/actions/download-artifact/issues/472">#472</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=8.0.0&new-version=8.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v2

Toggle v2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump actions/download-artifact from 8.0.0 to 8.0.1 (#68)

Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 8.0.0 to 8.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Support for CJK characters in the artifact name by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/471">actions/download-artifact#471</a></li>
<li>Add a regression test for artifact name + content-type mismatches by
<a href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a>
in <a
href="https://redirect.github.com/actions/download-artifact/pull/472">actions/download-artifact#472</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v8...v8.0.1">https://github.com/actions/download-artifact/compare/v8...v8.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c"><code>3e5f45b</code></a>
Add regression tests for CJK characters (<a
href="https://redirect.github.com/actions/download-artifact/issues/471">#471</a>)</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e6d03f67377d4412c7aa56a8e2e4988e6ec479dd"><code>e6d03f6</code></a>
Add a regression test for artifact name + content-type mismatches (<a
href="https://redirect.github.com/actions/download-artifact/issues/472">#472</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=8.0.0&new-version=8.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v2.2.3

Toggle v2.2.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump actions/download-artifact from 7.0.0 to 8.0.0 (#66)

Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 7.0.0 to 8.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.0</h2>
<h2>v8 - What's new</h2>
<h3>Direct downloads</h3>
<p>To support direct uploads in <code>actions/upload-artifact</code>,
the action will no longer attempt to unzip all downloaded files.
Instead, the action checks the <code>Content-Type</code> header ahead of
unzipping and skips non-zipped files. Callers wishing to download a
zipped file as-is can also set the new <code>skip-decompress</code>
parameter to <code>false</code>.</p>
<h3>Enforced checks (breaking)</h3>
<p>A previous release introduced digest checks on the download. If a
download hash didn't match the expected hash from the server, the action
would log a warning. Callers can now configure the behavior on mismatch
with the <code>digest-mismatch</code> parameter. To be secure by
default, we are now defaulting the behavior to <code>error</code> which
will fail the workflow run.</p>
<h3>ESM</h3>
<p>To support new versions of the @actions/* packages, we've upgraded
the package to ESM.</p>
<h2>What's Changed</h2>
<ul>
<li>Don't attempt to un-zip non-zipped downloads by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/460">actions/download-artifact#460</a></li>
<li>Add a setting to specify what to do on hash mismatch and default it
to <code>error</code> by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/461">actions/download-artifact#461</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v7...v8.0.0">https://github.com/actions/download-artifact/compare/v7...v8.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3"><code>70fc10c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/461">#461</a>
from actions/danwkennedy/digest-mismatch-behavior</li>
<li><a
href="https://github.com/actions/download-artifact/commit/f258da9a506b755b84a09a531814700b86ccfc62"><code>f258da9</code></a>
Add change docs</li>
<li><a
href="https://github.com/actions/download-artifact/commit/ccc058e5fbb0bb2352213eaec3491e117cbc4a5c"><code>ccc058e</code></a>
Fix linting issues</li>
<li><a
href="https://github.com/actions/download-artifact/commit/bd7976ba57ecea96e6f3df575eb922d11a12a9fd"><code>bd7976b</code></a>
Add a setting to specify what to do on hash mismatch and default it to
<code>error</code></li>
<li><a
href="https://github.com/actions/download-artifact/commit/ac21fcf45e0aaee541c0f7030558bdad38d77d6c"><code>ac21fcf</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/460">#460</a>
from actions/danwkennedy/download-no-unzip</li>
<li><a
href="https://github.com/actions/download-artifact/commit/15999bff51058bc7c19b50ebbba518eaef7c26c0"><code>15999bf</code></a>
Add note about package bumps</li>
<li><a
href="https://github.com/actions/download-artifact/commit/974686ed5098c7f9c9289ec946b9058e496a2561"><code>974686e</code></a>
Bump the version to <code>v8</code> and add release notes</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fbe48b1d2756394be4cd4358ed3bc1343b330e75"><code>fbe48b1</code></a>
Update test names to make it clearer what they do</li>
<li><a
href="https://github.com/actions/download-artifact/commit/96bf374a614d4360e225874c3efd6893a3f285e7"><code>96bf374</code></a>
One more test fix</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b8c4819ef592cbe04fd93534534b38f853864332"><code>b8c4819</code></a>
Fix skip decompress test</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/download-artifact/compare/37930b1c2abaa49bbe596cd826c3c89aef350131...70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=7.0.0&new-version=8.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v2.2.2

Toggle v2.2.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🩹 [Patch]: Update Release workflow and dependencies (#61)

Updates the Release workflow and action configuration.

## Changes

- Updated `Release-GHRepository` action to latest version
- Added comments to clarify workflow permissions
- Updated action configuration

v2.2.1

Toggle v2.2.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🩹[Patch]: Workflow improvements (#60)

This release makes several improvements to the release workflow and
supporting scripts, focusing on standardization, clarity, and
modernization. The most significant changes include renaming and
updating the release workflow, consolidating and improving PowerShell
scripts, and cleaning up configuration files related to linters and
release notes. Additionally, the scripts now use `Write-Host` for output
and include more structured and readable logging.

**Release Workflow Improvements**
- Renamed the workflow file from `.github/workflows/Auto-Release.yml` to
`.github/workflows/Release.yml`, updated the workflow name and job
names, and switched from the `Auto-Release` action to the newer
`Release-GHRepository` action for publishing releases. Also, restricted
the workflow to trigger only on changes to `action.yml` and `src/**`.

**PowerShell Script Modernization and Consolidation**
- Moved PowerShell scripts from the `scripts/` directory to `src/`,
updated references in `action.yml`, and improved script output by
replacing `Write-Output` with `Write-Host` for better compatibility with
GitHub Actions. Added more structured and visually separated log output
using `Write-Host '-------------------------------------------------'`.

**Configuration and Linting Cleanup**
- Removed the `.github/linters/.jscpd.json` configuration file and
disabled JSCPD validation in the linter workflow.
- Added an exclusion for the `PSAvoidUsingWriteHost` rule in
`.github/linters/.powershell-psscriptanalyzer.psd1` to allow using
`Write-Host` in scripts running on GitHub Actions.

**Release Notes and Input Documentation**
- Removed the custom changelog configuration from `.github/release.yml`
to rely on default GitHub release note generation.
- Fixed a typo in the `IncrementalPrerelease` input description in
`action.yml`.

v2.2.0

Toggle v2.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🚀 [Feature]: Add ReleaseType input for explicit release control (#59)

The action now supports explicit control over the release type through
the new `ReleaseType` input parameter. You can specify whether to create
a stable release, prerelease, or skip releasing entirely—without relying
on automatic detection from PR state and labels. The workflow has also
been restructured into three phases (initialization, publishing,
cleanup) that run conditionally, improving efficiency when only cleanup
is needed.

- Part of PSModule/Process-PSModule#73
- Part of PSModule/Process-PSModule#265

## New ReleaseType input parameter

A new `ReleaseType` input allows you to explicitly control the release
behavior:

| Value | Description |
|-------|-------------|
| `Release` | Create a stable release (default) |
| `Prerelease` | Create a prerelease |
| `None` | Do not create any release |

This input is designed to work with `Get-PSModuleSettings`, which
pre-calculates the appropriate release type based on your workflow
context:

```yaml
- uses: PSModule/Publish-PSModule@v2
  with:
    APIKey: ${{ secrets.PSGALLERY_API_KEY }}
    ReleaseType: ${{ fromJson(inputs.Settings).Publish.Module.ReleaseType }}
    AutoCleanup: ${{ fromJson(inputs.Settings).Publish.Module.AutoCleanup }}
```

## Restructured workflow execution

The action now runs in three separate phases, each executing only when
needed:

1. **Initialize Publish Context** (`init.ps1`) – Calculates version,
validates inputs, and stores context in environment variables
2. **Publish Module** (`publish.ps1`) – Downloads artifact, updates
manifest, publishes to PSGallery, and creates GitHub release (runs only
when `ShouldPublish` is true)
3. **Cleanup Prereleases** (`cleanup.ps1`) – Deletes old prerelease tags
(runs only when `ShouldCleanup` is true)

This separation means the action skips unnecessary steps. For example,
when a PR is closed without merging, the workflow can run cleanup
independently without downloading artifacts or attempting to publish.

## Backward compatibility

The `ReleaseType` parameter defaults to `Release`, maintaining current
behavior for merged PRs targeting the default branch. Existing workflows
continue to work without modification.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>