From eb63ffc7db79a8ee815cf8ae96b6a3a61856f90f Mon Sep 17 00:00:00 2001 From: Zack3D Date: Sun, 21 Sep 2025 22:57:45 -0700 Subject: [PATCH] wf --- .gitea/workflows/ci-reusable.yml | 14 +++++++++++--- .gitea/workflows/multi-platform.yml | 14 +++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/ci-reusable.yml b/.gitea/workflows/ci-reusable.yml index 2efae1c..8cee0a0 100644 --- a/.gitea/workflows/ci-reusable.yml +++ b/.gitea/workflows/ci-reusable.yml @@ -26,15 +26,23 @@ jobs: components: clippy, rustfmt targets: ${{ inputs.target }} - - name: Install components (clippy, rustfmt) + - name: Install cross-compilation tools (Linux ARM64) + if: runner.os == 'Linux' && inputs.target == 'aarch64-unknown-linux-gnu' run: | - rustup component add clippy rustfmt || true + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + + - name: Configure cross-compilation (Linux ARM64) + if: runner.os == 'Linux' && inputs.target == 'aarch64-unknown-linux-gnu' + run: | + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - name: Build run: | ${{ inputs.target && format('cargo build --all-features --target {0}', inputs.target) || 'cargo build --all-features' }} - name: Test + if: inputs.target == '' || (runner.os == 'Linux' && inputs.target == 'x86_64-unknown-linux-gnu') || (runner.os == 'macOS' && ((runner.arch == 'ARM64' && inputs.target == 'aarch64-apple-darwin') || (runner.arch == 'X64' && inputs.target == 'x86_64-apple-darwin'))) || (runner.os == 'Windows' && inputs.target == 'x86_64-pc-windows-msvc') run: | ${{ inputs.target && format('cargo test --all-features --target {0}', inputs.target) || 'cargo test --all-features' }} @@ -113,4 +121,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: medicallib-rust-${{ inputs.target || runner.os }} - path: dist/ \ No newline at end of file + path: dist/ diff --git a/.gitea/workflows/multi-platform.yml b/.gitea/workflows/multi-platform.yml index e35b501..cb6e951 100644 --- a/.gitea/workflows/multi-platform.yml +++ b/.gitea/workflows/multi-platform.yml @@ -11,23 +11,21 @@ jobs: fail-fast: false matrix: include: - # Linux platforms + # Linux native and cross-compilation targets - os: ubuntu-22.04 target: x86_64-unknown-linux-gnu - os: ubuntu-22.04 target: aarch64-unknown-linux-gnu - # macOS platforms + # macOS native targets only (cross-compilation from macOS is limited) - os: macos-latest target: x86_64-apple-darwin - os: macos-latest target: aarch64-apple-darwin - # Windows platforms + # Windows native targets only - os: windows-latest target: x86_64-pc-windows-msvc - - os: windows-latest - target: aarch64-pc-windows-msvc uses: ./.gitea/workflows/ci-reusable.yml with: @@ -49,13 +47,15 @@ jobs: # Package for distribution (only on master) package: - if: github.event_name == 'push' && github.ref == 'refs/heads/master' + if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') needs: [test-platforms, test-native] strategy: matrix: include: - os: ubuntu-22.04 target: x86_64-unknown-linux-gnu + - os: ubuntu-22.04 + target: aarch64-unknown-linux-gnu - os: macos-latest target: x86_64-apple-darwin - os: macos-latest @@ -67,4 +67,4 @@ jobs: with: os: ${{ matrix.os }} target: ${{ matrix.target }} - upload-artifacts: true \ No newline at end of file + upload-artifacts: true