GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Move building of Alpine to Alpine container host by adityapatwardhan · Pull Request #105 · PowerShell/PowerShell-Native

Conversation

@adityapatwardhan

@adityapatwardhan Aditya Patwardhan (adityapatwardhan) commented Oct 23, 2025

Copy link
Copy Markdown
Member

PR Summary

This pull request introduces a new build pipeline for producing MUSL-based Linux binaries using Alpine, refactors the pipeline templates to support this build, and updates artifact handling to ensure correct packaging. The changes improve cross-platform support, streamline the build process for Alpine/MUSL, and ensure that the resulting native library is correctly extracted and included in the NuGet package.

Pipeline and Build System Enhancements

  • Added a new LinuxMuslBuild stage to .pipelines/release.yml, which uses a dedicated Alpine-based container image and a new build template for MUSL builds. This replaces the previous approach that used the standard Linux build template for MUSL targets. [1] [2]
  • Created .pipelines/templates/build-alpine.yml to define jobs for preparing the Docker build context, building the Alpine image, and extracting the libpsl-native.so binary from the built Docker image.
  • Updated the build dependencies for the NuGet packaging stage to include the new LinuxMuslBuild stage, ensuring MUSL binaries are available for packaging.

Artifact and Packaging Updates

  • Refactored .pipelines/templates/build-nuget.yml to consume artifacts from the new Alpine/MUSL extraction job, updating variable names and artifact paths to reflect the new pipeline structure. [1] [2]
  • Added verbose logging and artifact inspection steps to improve traceability and debugging of compressed platform artifacts during packaging.

Build and Dockerfile Improvements

  • Added a new Dockerfile to support building native binaries on Alpine and exporting the resulting libpsl-native.so for use in packaging.
  • Improved logging in build.psm1 to provide clearer build completion messages and file listings for the generated native library.

PR Context

Build alpine native components on Alpine container

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@adityapatwardhan
Move building of Alpine to Alpine container host
4a02aef
@adityapatwardhan
Aditya Patwardhan (adityapatwardhan) requested review from Travis Plunk (TravisEz13) and Copilot October 23, 2025 00:46
Copilot AI reviewed Oct 23, 2025
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown

There was a problem hiding this 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 moves the Alpine/MUSL binary build process from the generic Linux build pipeline to a dedicated Docker-based pipeline using an Alpine container host. This ensures MUSL binaries are built in their native environment rather than cross-compiled.

Key changes:

  • Introduces a new LinuxMuslBuild stage with Alpine-specific build pipeline that uses Docker to build and extract native binaries
  • Refactors artifact paths in NuGet packaging to consume outputs from the new Alpine pipeline
  • Adds improved logging and artifact inspection throughout the build process

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.pipelines/release.yml Adds new LinuxMuslBuild stage and updates NuGet packaging dependencies to include Alpine build outputs
.pipelines/templates/build-alpine.yml New template defining Docker-based Alpine build jobs including preparation, building, and binary extraction
.pipelines/templates/build-nuget.yml Updates artifact paths from old Linux MUSL build to new Alpine extraction job
Dockerfile New multi-stage Dockerfile for building MUSL binaries on Alpine and exporting the native library
build.psm1 Adds verbose logging after native binary compilation completes

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread .pipelines/templates/build-alpine.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Dockerfile Resolved

Uh oh!

There was an error while loading. Please reload this page.

@adityapatwardhan
CR feedback from co-pilot
4adc538
@adityapatwardhan

Aditya Patwardhan (adityapatwardhan) commented Oct 23, 2025

Copy link
Copy Markdown
Member Author

/azp run

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@azure-pipelines

azure-pipelines Bot commented Oct 23, 2025

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@adityapatwardhan
Aditya Patwardhan (adityapatwardhan) enabled auto-merge (squash) October 23, 2025 17:40
TravisEz13
Travis Plunk (TravisEz13) reviewed Oct 23, 2025
View reviewed changes
Comment thread Dockerfile
@@ -0,0 +1,12 @@
FROM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build

@TravisEz13 Travis Plunk (TravisEz13) Oct 23, 2025

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

have you setup dependabot?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
TravisEz13
Travis Plunk (TravisEz13) approved these changes Oct 23, 2025
View reviewed changes
@adityapatwardhan
Aditya Patwardhan (adityapatwardhan) merged commit e42a08f into master Oct 23, 2025
3 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@adityapatwardhan
Aditya Patwardhan (adityapatwardhan) deleted the BuildAlpine branch December 11, 2025 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments
@TravisEz13 Travis Plunk (TravisEz13) TravisEz13 approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@adityapatwardhan @TravisEz13
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.