Skip to content

Releases: PSModule/Publish-PSModule

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

v2.0.3

02 Jun 01:29
2303942

Choose a tag to compare

📖 [Docs]: Remove unused configuration options from README (#52)

Description

This pull request updates the README.md file to simplify the list of configurable settings for the action. It removes several less commonly used settings to streamline the documentation and make it easier to read.

Documentation cleanup:

  • README.md: Removed the following settings from the configuration list: Debug, Verbose, Version, and Prerelease. These settings are no longer included in the documentation to simplify the list and focus on the most relevant options.

Type of change

  • 📖 [Docs]
  • 🪲 [Fix]
  • 🩹 [Patch]
  • ⚠️ [Security fix]
  • 🚀 [Feature]
  • 🌟 [Breaking change]

Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas