-
Notifications
You must be signed in to change notification settings - Fork 8k
Integrate Windows packaging into windows-ci workflow using reusable workflow #26224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate Windows packaging into windows-ci workflow using reusable workflow #26224
Conversation
Co-authored-by: TravisEz13 <[email protected]>
… conversion Co-authored-by: TravisEz13 <[email protected]>
Co-authored-by: TravisEz13 <[email protected]>
This comment was marked as outdated.
This comment was marked as outdated.
Co-authored-by: TravisEz13 <[email protected]>
This comment was marked as outdated.
This comment was marked as outdated.
@copilot The Build and Package step requires a deep git checkout not shallow |
Co-authored-by: TravisEz13 <[email protected]>
Fixed in commit above. Changed the checkout to use |
Okay, it's working. Integrate it into windows-ci workflow instead of having it's own workflow. trigger based on this list, but you need to use the path-filters composite action
|
Co-authored-by: TravisEz13 <[email protected]>
Integrated in commit above. The packaging jobs are now part of windows-ci.yml and use the path-filters composite action with a new |
@copilot refactor the packaging job into a reusable workflow that is called from the current location |
Co-authored-by: TravisEz13 <[email protected]>
Refactored in commit above. Created a reusable workflow ( |
@copilot put packaging in a single reusable workflow with the entire matrix |
Co-authored-by: TravisEz13 <[email protected]>
Done in commit above. The reusable workflow now contains the entire matrix with all four configurations, and windows-ci.yml calls it once. This groups all packaging jobs together under "Windows Packaging" in the GitHub Actions UI. |
/azp run PowerShell-CI-linux-packaging, PowerShell-Windows-Packaging-CI |
Azure Pipelines could not run because the pipeline triggers exclude this branch/path. |
📣 Hey @@Copilot, how did we do? We would love to hear your feedback with the link below! 🗣️ 🔗 https://aka.ms/PSRepoFeedback |
Converts the Windows packaging Azure DevOps pipeline to GitHub Actions and integrates it into the existing windows-ci.yml workflow for better maintainability and efficiency.
Changes Made
Workflow Integration
windows-packaging-reusable.yml
) for Windows packaging with an internal matrix strategywindows-ci.yml
that groups all packaging configurations together in the GitHub Actions UIpackagingChanged
outputPath Filtering
Updated the path-filters composite action to detect changes to packaging-related files:
.github/workflows/windows-ci.yml
assets/wix/**
build.psm1
global.json
nuget.config
PowerShell.Common.props
src/*.csproj
test/packaging/windows/**
tools/ci.psm1
tools/packaging/**
tools/wix/**
The
packagingChanged
logic was refactored to use already-computed boolean variables (buildModuleChanged
,globalConfigChanged
,toolsCiPsm1Changed
) for better code organization and efficiency.Build Pipeline
The reusable packaging workflow follows the same pattern as other windows-ci jobs:
fetch-depth: 1000
) for git history and tagsglobal.json
Invoke-CIInstall
Invoke-CIFinish
(runs both Build and Package stages together)Environment Configuration
SYSTEM_ARTIFACTSDIRECTORY
andBUILD_ARTIFACTSTAGINGDIRECTORY
environment variables to support the packaging processpackaging.psm1
when running outside Azure DevOpsUI Organization
The packaging jobs only run when packaging-related files are changed, optimizing CI resources while maintaining full functionality. All four packaging configurations appear grouped together under a single "Windows Packaging" job in the GitHub Actions UI, providing a cleaner and more organized view where users can expand/collapse the packaging group to see all matrix jobs.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.