You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: harden CI workflows and fix prebuilt wheel testing
Iterate on the CI orchestrator and reusable build workflows to reliably
test against prebuilt artifacts without rebuilding from source.
Key changes:
Workflow infrastructure:
- Add build-test-binaries.yml for gl-plugin and gl-signerproxy artifacts
- Install cfssl from prebuilt release binaries instead of Go toolchain
- Modernize all third-party actions to 2026 versions (v6/v7/v8)
- Add protoc repo-token to avoid GitHub API rate limiting
- Fix macOS builds: native hosts (macos-13/macos-14) for architecture match
- Fix Windows: set Python architecture for x86 builds
- Fix Linux: chown maturin Docker output to restore user permissions
- Per-architecture rust-cache namespaces to avoid target collisions
Python wheel testing (python-test job):
- Install gl-testing with --no-deps to avoid uv workspace source
resolution rebuilding gl-client from source via maturin
- Install remaining deps explicitly, excluding workspace packages
- Use uv run --no-sync to prevent workspace re-resolution
- Use uv venv --clear (clnvm creates a .venv first)
- Add bitcoind, cfssl, lightningd (clnvm) for integration test fixtures
- Set CARGO_TARGET_DIR so gl-testing finds downloaded test binaries
N-API testing (napi-test job):
- Use absolute workspace paths for pip install (working-directory offset)
- Install gl-sdk wheel alongside gl-client
- Spawn gltestserver with uv run --no-sync (not uv run --package)
- Download prebuilt test binaries instead of compiling Rust locally
- Set CARGO_TARGET_DIR for gl-testing binary discovery
gl-sdk wheel packaging:
- Force-include glsdk/glsdk.py in hatchling build hook (gitignored by
default, so the UniFFI Python bindings were missing from the wheel)
- Retag wheel from py3-none-any to correct platform tag since it
contains native libglsdk.so/.dylib/.dll
Also includes cargo fmt and Cargo.toml dependency consolidation from
the parent branch.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments