Expand x265 CI to macOS/AArch64/Windows with parallel multilib builds and binary-reuse smoke tests - #942
Merged
Conversation
|
A bit unrelated, but not too unrelated, still a macOS aarch64 cross-compiling issue, and my message over there was ignored: can #877 be merged? |
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.
Summary
Expands the x265 CI pipeline from Linux-only to four platforms (Linux, macOS, AArch64 cross+QEMU, Windows), consolidates the per-suite test jobs into a per-platform test matrix, and cuts wall-clock time through build caching, parallelized multilib linking, and smoke-test binary reuse.
What changed
Platform coverage
test-cli-presets,test-rate-control, …) into one job per platform with acategorymatrix (presets-tune,rate-control,encoding-features,analysis-reuse,real-world,threading,hbd).Build matrix
config: [Release, Debug]matrix dimension on Linux and Windows.build-linux/build-windows); a thinbuild-linux-multilib/build-windows-multilibjob downloads both component libs and does only the final 8-bit link step. Previously all three steps ran sequentially in one job.Caching
pull_request_target, whose cache scope is otherwise tied only to the base branch.Bug fixes
x265.dllinstead of the correctlibx265.dll), so jobs that consumed that artifact couldn't find the library. Fixed the artifact path.aws/tap) on every run. Fixed by untapping it before installing dependencies.api.github.com/.../releases/latest, removing a flaky dependency on GitHub's unauthenticated API rate limit (60 req/hr, shared across all Actions runners globally).Smoke tests
smoke-linux/smoke-windowsnow reuse the CI's own prebuilt binaries viasmoke-test.py --no-make --no-benchinstead of having the harness rebuild from sourceAArch64 QEMU tuning
Cleanup
test-*jobs (binary was fetched but never invoked in any test command).needs:graphs to only what's functionally required:smoke-*depends on the multilib link job only (base build is covered transitively);summary-reportdepends only on thetest-*jobs it actually consumes artifacts from.