Skip to content

Move release builds onto supported runner images - #40

Merged
mbaluda merged 2 commits into
mainfrom
nicolaswill-fix-release-runners
Aug 3, 2026
Merged

Move release builds onto supported runner images#40
mbaluda merged 2 commits into
mainfrom
nicolaswill-fix-release-runners

Conversation

@nicolaswill

@nicolaswill nicolaswill commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

The release build cannot run today. internal-build-release-linux64.yml targets ubuntu-20.04, which GitHub retired on 2025-04-15; it is no longer listed in actions/runner-images and is not provisioned. Dispatching internal-release-build.yml in its current state would create the draft release tag, succeed on macOS and Windows, and then fail the Linux leg with no available runner — leaving a published tag and a draft release missing qlt-linux-x86_64.zip.

macos-14 is still provisioned but is marked deprecated upstream (actions/runner-images#13518), so it is moved in the same pass rather than left to break the next release.

Changes

  • Linux release build: ubuntu-20.04ubuntu-22.04
  • macOS release build: macos-14macos-15

Windows already targets windows-latest and is unchanged. These were the only two stale labels; ubuntu-20.04 appeared exactly once in the repository.

Bare macos-15 is the arm64 image, matching the osx-arm64 runtime identifier in MacOS-arm64-Profile.pubxml, so the macOS build stays arm64 and the existing # note this is arm64 comment remains accurate.

Why the image choice matters here

Both jobs publish with SelfContained=true and freeze codeql_bundle with PyInstaller on the same runner. Both link against the builder's system libraries, so the runner image sets the minimum glibc / macOS version for every released QLT binary.

ubuntu-24.04 raises the Linux floor from glibc 2.31 to 2.39. ubuntu-22.04 (glibc 2.35) would have been the smaller step; 24.04 was chosen deliberately to align with ubuntu-latest and avoid a second migration soon.

Edit: Downgraded to 22.04 for Linux. Pinning to ubuntu-latest (currently 24.04) would raise the glibc floor to 2.39, which is higher than necessary. ubuntu-22.04 is the oldest image GitHub still provisions and keeps the floor at glibc 2.35.

Risk

Low, and already exercised. install-qlt-local runs the same dotnet publish and the same build_codeql_bundle_dist.ps1 PyInstaller freeze on ubuntu-latest in the pull request workflows, and those pass on the current main.

This is a prerequisite for cutting v0.0.27, which is the first release that will ship the codeql-bundle 0.5.0 cache-aware tooling from #39.

The Linux release build targeted ubuntu-20.04, which GitHub retired on
2025-04-15 and no longer provisions, so the job would fail to find a
runner and the release would ship without its Linux archive. macos-14 is
still available but deprecated.

Move Linux to ubuntu-24.04 and macOS to macos-15. Bare macos-15 is the
arm64 image, matching the osx-arm64 publish profile, so the build stays
arm64. Windows already targets windows-latest.

Both jobs publish SelfContained=true and freeze codeql_bundle with
PyInstaller, so the runner image sets the minimum glibc/macOS version for
released binaries. The same publish and PyInstaller steps already run on
ubuntu-24.04 via install-qlt-local in the pull request workflows.
Copilot AI review requested due to automatic review settings July 29, 2026 09:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates the GitHub Actions runner images used for internal release builds so the release workflow can run on currently supported hosted runners and avoid failures due to retired/deprecated images.

Changes:

  • Linux release build runner: ubuntu-20.04ubuntu-24.04
  • macOS release build runner: macos-14macos-15 (arm64)
Show a summary per file
File Description
.github/workflows/internal-build-release-linux64.yml Moves the Linux release job to a supported Ubuntu runner image (ubuntu-24.04).
.github/workflows/internal-build-release-macos64.yml Moves the macOS release job to macos-15 while keeping the arm64 target.

Review details

Tip

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

  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Low

@nicolaswill

Copy link
Copy Markdown
Contributor Author

Note: The Copilot-generated PR description surfaced a point I missed, which is that pinning to ubuntu-latest (currently 24.04) will pin the glibc version to be higher than necessary, so I'm downgrading the version it runs on to 22.04.

ubuntu-24.04 matched ubuntu-latest but raised the minimum glibc for
released binaries to 2.39. The Linux job publishes SelfContained=true and
freezes codeql_bundle with PyInstaller, so that floor is inherited by
every QLT Linux user, and nothing here needs it.

ubuntu-22.04 is the oldest image GitHub still provisions and keeps the
floor at glibc 2.35.
Copilot AI review requested due to automatic review settings July 29, 2026 09:17

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review details

  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Low

@mbaluda mbaluda left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

👍🏻

@mbaluda
mbaluda merged commit eb549b2 into main Aug 3, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants