.github/workflows: Migrate workflows to Blacksmith runners#34
Open
blacksmith-sh[bot] wants to merge 8 commits intomainfrom
Open
.github/workflows: Migrate workflows to Blacksmith runners#34blacksmith-sh[bot] wants to merge 8 commits intomainfrom
blacksmith-sh[bot] wants to merge 8 commits intomainfrom
Conversation
The v3 version was deprecated and now fails the workflow at job setup. Bumping to v4 unblocks the build matrix. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
The Blacksmith Windows Server 2025 runner ships only the BuildTools edition of Visual Studio 2022, installed under Program Files (x86). The previous lookup only checked Program Files for Community, Professional, and Enterprise, so MS_BUILD_PATH was left as the unformatted template string and the build step failed with "The system cannot find the path specified." Search both Program Files roots, include BuildTools in the variant list, and fall back to msbuild on PATH (populated by microsoft/setup-msbuild) when no edition is found. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
MSBuild 17.x (shipped with VS 2022 BuildTools on the Blacksmith Windows Server 2025 runner) matches the Platform global property against ProjectConfiguration entries case-sensitively. The matrix passes platform=arm64 (lowercase), which made _CheckForInvalidConfigurationAndPlatform fail with: error : The BaseOutputPath/OutputPath property is not set for project 'FedoraWSL.vcxproj'. Normalize the lowercase arm64 input from the workflow matrix to the ARM64 spelling used by both FedoraWSL.sln and FedoraWSL.vcxproj. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Blacksmith's Windows Server 2025 image ships VS BuildTools 2022 in place of the full Visual Studio install on GitHub-hosted runners. The default BuildTools install only includes the x86/x64 C++ toolset, so ARM64 builds fail in _CheckForInvalidConfigurationAndPlatform with: error : The BaseOutputPath/OutputPath property is not set for project 'FedoraWSL.vcxproj'. Run vs_installer.exe modify on the arm64 matrix legs to add Microsoft.VisualStudio.Component.VC.Tools.ARM64 (for the launcher .vcxproj) and Microsoft.VisualStudio.Component.UWP.VC.ARM64 (for the FedoraWSL-Appx UWP project). Exit code 3010 is treated as success since it only signals a pending reboot the runner does not need. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
The previous attempt passed --installPath via Start-Process -ArgumentList as an array element. PowerShell's quoting of array elements that contain both spaces and parentheses (e.g. "C:\Program Files (x86)\...") is unreliable and produced a malformed command line, which the installer rejected with exit code 87 (ERROR_INVALID_PARAMETER) within a couple of seconds. Build the modify command line as a single, manually quoted string and prefer setup.exe (synchronous) over vs_installer.exe (which forks and returns immediately). Also drop the UWP component for now to keep the change minimal; if the launcher project builds we can layer the UWP support back on top. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
The previous run uncovered two distinct gaps versus the GitHub-hosted
Windows image:
1. The FedoraWSL-Appx UWP project fails on x64 too, not just on
ARM64, because the BuildTools install lacks the Universal
Windows Platform build tools workload entirely.
2. The setup.exe variant in the Installer folder does not accept
the modify verb. It printed its help and exited with code 87.
Use vs_installer.exe directly with array splatting so paths with
spaces survive the trip into ProcessStartInfo, run the install on
every matrix leg (x64 needs UWP just as much as arm64), and add the
ARM64 C++ tools only on the arm64 jobs. After Start-Process returns,
poll for any lingering setup engine processes so we don't proceed
to the build before the install actually finishes.
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
After several iterations attempting to install the missing Universal Windows Platform build tools and ARM64 C++ toolset on Blacksmith's Windows Server 2025 image, it is clear the project's mix of a UWP appx and an ARM64 launcher needs components that the Blacksmith image deliberately omits in favor of VS Build Tools 2022. Revert this job's runs-on to windows-latest so the build matrix passes again, and leave a comment explaining the constraint and the rollback condition (a custom Blacksmith Windows image with full Visual Studio). The build.py and upload-artifact@v4 fixes from earlier commits are kept since they are improvements that also help on the GitHub-hosted runner. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR has been automatically generated by a team member in your GitHub organization using Blacksmith's Migration Wizard. This PR changes the following:
runs-on: blacksmith-4vcpu-ubuntu-2204). Learn more about the different instances available to choose from.Need help on this PR? Tag
@codesmithwith what you need.