Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/macos-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ jobs:
outputs:
source: ${{ steps.filter.outputs.source }}
buildModuleChanged: ${{ steps.filter.outputs.buildModuleChanged }}
packagingChanged: ${{ steps.filter.outputs.packagingChanged }}
steps:
- name: checkout
uses: actions/checkout@v4.1.0
Expand Down Expand Up @@ -155,7 +156,7 @@ jobs:
name: macOS packaging and testing
needs:
- changes
if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}
if: ${{ needs.changes.outputs.packagingChanged == 'true' }}

Copilot AI Mar 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The packagingChanged output is not set in the path-filters action for non-PR events (push to master, release/**, etc.). On push events, the action only sets toolsChanged, githubChanged, propsChanged, testsChanged, mainSourceChanged, buildModuleChanged, and source — but NOT packagingChanged (see .github/actions/infrastructure/path-filters/action.yml lines 50-61). This means the macOS packaging job will never run on push events.

Previously, this job used source == 'true' || buildModuleChanged == 'true', which worked on push events since both source and buildModuleChanged are set to true for non-PR events.

Note: This same issue already affects linux_packaging in linux-ci.yml and windows_packaging in windows-ci.yml which also use packagingChanged. This should be fixed in the default branch first by adding packagingChanged to the non-PR outputs in the path-filters action.


Suggested Issue for Default Branch:

Issue Title

path-filters action does not set packagingChanged output for non-PR (push) events

Description

The path-filters composite action at .github/actions/infrastructure/path-filters/action.yml has a fast path for non-PR events (lines 50-61) that sets all outputs to true, but packagingChanged is missing from this block.

Current State:

  • On push events, packagingChanged is never set (empty/falsy)
  • All packaging jobs in linux-ci.yml, windows-ci.yml, and macos-ci.yml depend on packagingChanged == 'true'
  • Packaging jobs will never run on push events to master or release/** branches

Expected State:
Add core.setOutput('packagingChanged', true); to the non-PR block alongside the other outputs.

Files Affected:

  • .github/actions/infrastructure/path-filters/action.yml

Priority: High
Labels: Issue-Bug, Area-Build

Copilot uses AI. Check for mistakes.
runs-on:
- macos-latest
steps:
Expand Down
10 changes: 7 additions & 3 deletions tools/packaging/packaging.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -1145,12 +1145,16 @@ function New-UnixPackage {
}

# Determine if the version is a preview version
# Only LTS packages get a prefix in the name
# Preview versions are identified by the version string itself (e.g., 7.6.0-preview.6)
# Rebuild versions are also identified by the version string (e.g., 7.4.13-rebuild.5)
$IsPreview = Test-IsPreview -Version $Version -IsLTS:$LTS

# For deb/rpm packages, use the '-lts' and '-preview' channel suffix variants to match existing names on packages.microsoft.com.
# For osxpkg package, only LTS packages get a channel suffix in the name.
$Name = if($LTS) {
"powershell-lts"
}
elseif ($IsPreview -and $Type -ne "osxpkg") {
"powershell-preview"
}
else {
"powershell"
}
Expand Down
Loading