Repository navigation
ci: build the release upstream assets on the real runners; coturn without host-detected backends - #346
Merged
Conversation
…em (#319) The release's upstream asset build (scripts/release-upstream-assets.py, with the Browser helper source builds) ran only in release-package.yml, so a broken recipe or build script showed up half an hour into a release. CI's new release-upstream-assets job runs the same command for Linux ARM64 and Apple Silicon, with the release's runner, Rust toolchain, targets, umask and isolated HOME, and requires its stdout to be one JSON document. Linux ARM64 packages the pinned engine this run's engine-llama-arm64 job provides. It runs on pull requests whose changed files match its path filter, on merge groups and on manual runs. scripts/release-host-prerequisites.sh is now the one list of release host packages that both workflows install. ci-release-policy-test.py follows the build's Python entry point into its modules and recipes, requires the filter to cover every file they call, load or package, and checks the job against release-package.yml.
GitHub's ubuntu-24.04-arm runner ships MySQL headers. coturn's configure enables every optional backend whose headers it finds, so the static musl TURN build failed there (release run 38149169301) while a clean ubuntu:24.04 container passed. ElastOS TURN uses an in-memory REST secret and no database: turn every optional backend off so the build no longer depends on the host. The recipes pin the build script's new checksum.
This was referenced Oct 12, 2026
This was referenced Oct 12, 2026
5 of 11 tasks
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.
Release package builds failed twice on 11 Oct, each found 30 to 36 minutes into a release run (#319 rows 20, 21 and lesson 52):
linux/mman.h(fixed in release: make the Linux ARM64 and Mac release package builds pass #344), then on MySQL headers that GitHub's ARM runner ships (release run 38149169301).This PR:
scripts/release-upstream-assets.pyon the real GitHub runners (ubuntu-24.04-arm and macos-14) whenever its inputs change. Proven on the old code: it fails in 59 s on Linux ARM64 and 206 s on Mac, versus 30 to 36 min in a release run; it passes with the fixes (6.6 min and 205 s).TURN_NO_*), so the build no longer depends on what the host has installed. ElastOS TURN uses an in-memory REST secret and no database.scripts/release-host-prerequisites.sh) now serves both workflows; a policy test keeps runner, toolchain and targets equal.Needed before alpha.15 is dispatched.