Skip to content

Releases: PSModule/Publish-PSModule

v2.2.3

06 Mar 08:54
207c39b

Choose a tag to compare

Bump actions/download-artifact from 7.0.0 to 8.0.0 (#66)

Bumps actions/download-artifact from 7.0.0 to 8.0.0.

Release notes

Sourced from actions/download-artifact's releases.

v8.0.0

v8 - What's new

Direct downloads

To support direct uploads in actions/upload-artifact, the action will no longer attempt to unzip all downloaded files. Instead, the action checks the Content-Type header ahead of unzipping and skips non-zipped files. Callers wishing to download a zipped file as-is can also set the new skip-decompress parameter to false.

Enforced checks (breaking)

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 digest-mismatch parameter. To be secure by default, we are now defaulting the behavior to error which will fail the workflow run.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

Full Changelog: actions/download-artifact@v7...v8.0.0

Commits
  • 70fc10c Merge pull request #461 from actions/danwkennedy/digest-mismatch-behavior
  • f258da9 Add change docs
  • ccc058e Fix linting issues
  • bd7976b Add a setting to specify what to do on hash mismatch and default it to error
  • ac21fcf Merge pull request #460 from actions/danwkennedy/download-no-unzip
  • 15999bf Add note about package bumps
  • 974686e Bump the version to v8 and add release notes
  • fbe48b1 Update test names to make it clearer what they do
  • 96bf374 One more test fix
  • b8c4819 Fix skip decompress test
  • Additional commits viewable in compare view

Dependabot compatibility score

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 commands and options

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)

v2.2.2

27 Jan 20:01
2e548cf

Choose a tag to compare

🩹 [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

27 Jan 18:37
956f6da

Choose a tag to compare

🩹[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

19 Jan 23:44
e1b338d

Choose a tag to compare

🚀 [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.

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:

- 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.

v2.1.0

17 Jan 23:52
ebbfeec

Choose a tag to compare

🚀 [Feature]: Add PR-based release name and notes options (#58)

The publish action now supports using your pull request title and description to create more meaningful GitHub releases, giving you control over how your module releases appear to users.

New action inputs

Three new inputs are available in the action:

Input Default Description
UsePRTitleAsReleaseName false Uses the pull request title as the name for the GitHub release
UsePRBodyAsReleaseNotes true Uses the pull request body as the release notes content
UsePRTitleAsNotesHeading true Prepends PR title as H1 heading with PR number link in release notes

Default behavior

With default settings, when a module is published:

  1. The release name uses the version tag (e.g., v1.2.3)
  2. The release notes include the PR title as a heading with a link to the PR
  3. The PR description follows as the release notes body
  4. Falls back to GitHub's auto-generated notes if the PR description is empty

Implementation details

The release creation logic in scripts/helpers/Publish-PSModule.ps1 now dynamically builds the gh release create command based on the configuration:

  • Adds --title with PR title when UsePRTitleAsReleaseName is enabled
  • Adds --notes with formatted content when PR body is available
  • Falls back to --generate-notes when no PR content is available

Linting improvements

  • Disabled BIOME_FORMAT validation via .github/PSModule.yml
  • Added persist-credentials: false to all checkout steps
  • Added groups configuration to dependabot for cooldown compliance
  • Added zizmor: ignore comments for intentional patterns (dangerous-triggers, unpinned external actions)

v2.0.8

26 Nov 08:14
6c25d13

Choose a tag to compare

Bump actions/checkout from 5 to 6 (#57)

Bumps actions/checkout from 5 to 6.

Release notes

Sourced from actions/checkout's releases.

v6.0.0

What's Changed

Full Changelog: actions/checkout@v5.0.0...v6.0.0

v6-beta

What's Changed

Updated persist-credentials to store the credentials under $RUNNER_TEMP instead of directly in the local git config.

This requires a minimum Actions Runner version of v2.329.0 to access the persisted credentials for Docker container action scenarios.

v5.0.1

What's Changed

Full Changelog: actions/checkout@v5...v5.0.1

Changelog

Sourced from actions/checkout's changelog.

Changelog

V6.0.0

V5.0.1

V5.0.0

V4.3.1

V4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

... (truncated)

Commits

[Dependabot compatibility score](https://docs.github.com/en/github/managing-security-vulnerabilities/about-d...

Read more

v2.0.7

15 Oct 11:21
178fe37

Choose a tag to compare

🩹 [Patch]: Move documentation and link to Process-PSModule (#56)

Description

This pull request primarily cleans up and simplifies the documentation and metadata for the Publish-PSModule GitHub Action. The most significant changes involve removing detailed usage instructions and specifications from the README.md, and simplifying the action's metadata in action.yml.

Documentation cleanup and simplification:

  • The README.md file has been heavily reduced, removing detailed descriptions, usage instructions, configuration options, and example workflows, leaving only a brief reference to the PSModule framework.

Metadata update:

  • The action.yml file has been simplified by removing branding information and shortening the action's name.

v2.0.6

12 Oct 12:30
61f2953

Choose a tag to compare

🩹 [Patch]: Encode all PowerShell files using UTF8 with BOM (#55)

Description

This pull request makes a minor change to the scripts/main.ps1 file. It updates the file to include a Unicode Byte Order Mark (BOM) at the beginning, which can help with encoding detection in some editors and environments.

v2.0.5

05 Oct 10:25
6c3988e

Choose a tag to compare

🩹 [Patch]: Update Dependabot configuration to include labels for GitHub Actions (#54)

Description

This pull request makes a small configuration update to the Dependabot settings. It adds labels to automatically categorize pull requests related to GitHub Actions dependencies.

  • .github/dependabot.yml: Added dependencies and github-actions labels to GitHub Actions update PRs.

v2.0.4

27 Aug 07:14
92043dc

Choose a tag to compare

Bump actions/checkout from 4 to 5 (#53)

Bumps actions/checkout from 4 to 5.

Release notes

Sourced from actions/checkout's releases.

v5.0.0

What's Changed

⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

Full Changelog: actions/checkout@v4...v5.0.0

v4.3.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v4...v4.3.0

v4.2.2

What's Changed

Full Changelog: actions/checkout@v4.2.1...v4.2.2

v4.2.1

What's Changed

New Contributors

Full Changelog: actions/checkout@v4.2.0...v4.2.1

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

V5.0.0

V4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

  • Update NPM dependencie...
Read more