Skip to content

Conversation

@TravisEz13
Copy link
Member

Backport of #26225 to release/v7.6

Triggered by @TravisEz13 on behalf of @app/copilot-swe-agent

Original CL Label: CL-BuildPackaging

/cc @PowerShell/powershell-maintainers

Impact

REQUIRED: Choose either Tooling Impact or Customer Impact (or both). At least one checkbox must be selected.

Tooling Impact

  • Required tooling change
  • Optional tooling change (include reasoning)

This is a critical tooling change required for Linux packaging infrastructure. Converts the Azure DevOps Linux Packaging pipeline to GitHub Actions workflow, including:

  • Updated .github/actions/test/linux-packaging/action.yml composite action to use GitHub Actions artifact handling
  • Enabled linux_packaging job in .github/workflows/linux-ci.yml
  • Fixed gem installation permissions for GitHub Actions environment in build.psm1
    Without this change, Linux packaging cannot function in GitHub Actions.

Customer Impact

  • Customer reported
  • Found internally

Regression

REQUIRED: Check exactly one box.

  • Yes
  • No

This is not a regression.

Testing

Original PR validated with GitHub Actions workflows in master branch. Verified:

  1. YAML syntax and structure validation
  2. Composite action updates to use GitHub Actions equivalents for Azure DevOps tasks
  3. Fixed gem permission errors by detecting GitHub Actions environment
  4. Fixed git describe errors with deep checkout (fetch-depth: 0) and Sync-PSTags
  5. Successfully integrated with existing CI workflow structure

Backport verified by successful cherry-pick with conflict resolution maintaining release branch patterns.

Risk

REQUIRED: Check exactly one box.

  • High
  • Medium
  • Low

High risk as it modifies build infrastructure (CI/CD pipelines, packaging composite action, bootstrap script). However, this change is necessary to maintain Linux packaging functionality after migration to GitHub Actions. The changes have been validated in master branch since October 17, 2025 (over one month). Not taking this change would prevent Linux package creation on release/v7.6 branch in GitHub Actions environment.

Merge Conflicts

Conflict occurred in .github/workflows/linux-ci.yml in the ready_to_merge job dependencies.

Cause: The original PR added two dependencies to ready_to_merge:

  1. - analyze (uncommented the CodeQL analysis dependency)
  2. - linux_packaging (added the new packaging job)

However, release/v7.6 has the CodeQL analyze job intentionally commented out with note: "Temporarily disable the CodeQL analysis on Linux as it doesn't work for .NET SDK 10-rc.2."

Resolution: Kept release branch pattern by maintaining # - analyze as commented out, while adding only - linux_packaging dependency which is the actual fix from PR #26225. This preserves the intentional CodeQL disablement on release/v7.6 while enabling the Linux packaging functionality.

Files modified during resolution:

  • .github/workflows/linux-ci.yml: Line ~228 in ready_to_merge.needs list

…low (PowerShell#26225)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: TravisEz13 <10873629+TravisEz13@users.noreply.github.com>
Copilot AI review requested due to automatic review settings November 20, 2025 00:03
@TravisEz13 TravisEz13 added the CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log label Nov 20, 2025
@TravisEz13 TravisEz13 requested a review from a team as a code owner November 20, 2025 00:03
@TravisEz13 TravisEz13 added the CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log label Nov 20, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR backports the Linux packaging pipeline migration from Azure DevOps to GitHub Actions (originally #26225) to the release/v7.6 branch. The changes enable Linux package creation in GitHub Actions by updating the workflow, composite action, and build module to work in the GitHub Actions environment.

Key changes:

  • Fixed gem installation permissions for GitHub Actions environment
  • Enabled linux_packaging job in the CI workflow with proper dependencies and fetch-depth configuration
  • Converted composite action from Azure DevOps tasks to GitHub Actions equivalents for artifact handling

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
build.psm1 Added $env:GITHUB_ACTIONS check to Install-GlobalGem function to use sudo in GitHub Actions, fixing gem permission errors
.github/workflows/linux-ci.yml Enabled linux_packaging job with proper dependencies (ci_build, changes), full git history (fetch-depth: 0), and added to ready_to_merge job dependencies
.github/actions/test/linux-packaging/action.yml Converted from Azure DevOps to GitHub Actions: replaced Azure DevOps artifact tasks with actions/download-artifact and actions/upload-artifact, added .NET SDK setup, added Sync-PSTags call, replaced JavaScript extraction with PowerShell Expand-Archive, updated paths to use runner.workspace

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@TravisEz13 TravisEz13 merged commit bcf9f89 into PowerShell:release/v7.6 Nov 20, 2025
42 checks passed
@TravisEz13 TravisEz13 deleted the backport/release/v7.6/26225-1bd038c4d branch November 20, 2025 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants