Skip to content

ci: build the release upstream assets on the real runners; coturn without host-detected backends - #346

Merged
andersalm merged 2 commits into
developfrom
ci/upstream-assets
Oct 12, 2026
Merged

andersalm merged 2 commits into
developfrom
ci/upstream-assets

Conversation

@andersalm

Copy link
Copy Markdown
Contributor

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):

This PR:

  • Guard: a CI job runs the exact release command scripts/release-upstream-assets.py on 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).
  • Fix: coturn is built with every optional backend off (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.
  • One prerequisite list (scripts/release-host-prerequisites.sh) now serves both workflows; a policy test keeps runner, toolchain and targets equal.

Needed before alpha.15 is dispatched.

…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.
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.

1 participant