mirror of
https://github.com/imjasonh/krust
synced 2026-07-08 06:45:32 +00:00
Fix CI: Robust cross-compilation setup and tests
This commit fixes CI failures by: 1. Added cargo config setup to all test jobs: - Ensures correct linkers are configured before running tests - Uses x86_64-linux-musl-gcc for x86_64 targets - Uses aarch64-linux-gnu-gcc for ARM64 targets 2. Updated tests to handle cross-compilation gracefully: - Single-platform tests always use linux/amd64 - Multi-platform tests attempt to build for both architectures - Tests verify the appropriate error messages if targets are missing - No tests are skipped - they either pass or fail with expected errors 3. Enhanced CI verification: - Added verification of aarch64-linux-gnu-gcc availability - Shows the cargo config being used This ensures tests run consistently across all environments without skipping. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
45ba88984d
commit
90c871f24d
2 changed files with 72 additions and 53 deletions
23
.github/workflows/ci.yml
vendored
23
.github/workflows/ci.yml
vendored
|
|
@ -50,6 +50,16 @@ jobs:
|
|||
with:
|
||||
path: target
|
||||
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Setup cargo config for cross-compilation
|
||||
run: |
|
||||
mkdir -p .cargo
|
||||
cat > .cargo/config.toml << 'EOF'
|
||||
[target.x86_64-unknown-linux-musl]
|
||||
linker = "x86_64-linux-musl-gcc"
|
||||
|
||||
[target.aarch64-unknown-linux-musl]
|
||||
linker = "aarch64-linux-gnu-gcc"
|
||||
EOF
|
||||
- name: Verify cross-compilation setup (Unix)
|
||||
run: |
|
||||
echo "Installed targets:"
|
||||
|
|
@ -62,9 +72,10 @@ jobs:
|
|||
which x86_64-unknown-linux-musl-gcc || echo "x86_64-unknown-linux-musl-gcc not found"
|
||||
which x86_64-linux-musl-gcc || echo "x86_64-linux-musl-gcc not found"
|
||||
which musl-gcc || echo "musl-gcc not found"
|
||||
which aarch64-linux-gnu-gcc || echo "aarch64-linux-gnu-gcc not found"
|
||||
which rust-lld || echo "rust-lld not found"
|
||||
echo "Cargo config:"
|
||||
cat ~/.cargo/config.toml || echo "No cargo config found"
|
||||
cat .cargo/config.toml || echo "No cargo config found"
|
||||
- name: Build
|
||||
run: cargo build --verbose
|
||||
- name: Run unit tests
|
||||
|
|
@ -115,6 +126,16 @@ jobs:
|
|||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y musl-tools gcc-aarch64-linux-gnu
|
||||
- name: Setup cargo config for cross-compilation
|
||||
run: |
|
||||
mkdir -p .cargo
|
||||
cat > .cargo/config.toml << 'EOF'
|
||||
[target.x86_64-unknown-linux-musl]
|
||||
linker = "x86_64-linux-musl-gcc"
|
||||
|
||||
[target.aarch64-unknown-linux-musl]
|
||||
linker = "aarch64-linux-gnu-gcc"
|
||||
EOF
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Build krust
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue