From 3200aa24ef203c1094820a285304be4640b82a8b Mon Sep 17 00:00:00 2001 From: John Rogers Date: Thu, 10 Jul 2025 12:29:31 +0100 Subject: [PATCH] ci: Setup armv7 cross-compile build workflow Co-authored-by: aider (gemini/gemini-2.5-pro-preview-05-06) --- .github/workflow.yml | 45 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/.github/workflow.yml b/.github/workflow.yml index 606ad62..718d323 100644 --- a/.github/workflow.yml +++ b/.github/workflow.yml @@ -1,10 +1,43 @@ +name: Build for Raspberry Pi + +on: + push: + branches: + - main + pull_request: + branches: + - main + +env: + CARGO_TERM_COLOR: always + # Target for 32-bit Raspberry Pi (Raspberry Pi OS) + RUST_TARGET: armv7-unknown-linux-gnueabihf + jobs: build: + name: Build for armv7 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: pguyot/arm-runner-action@v2 - with: - commands: | - cargo build - \ No newline at end of file + - uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain-stable@stable + with: + targets: ${{ env.RUST_TARGET }} + + - name: Install cross-compile linker + run: | + sudo apt-get update -y + sudo apt-get install -y gcc-arm-linux-gnueabihf + + - name: Build release binary + run: cargo build --release --target ${{ env.RUST_TARGET }} + env: + # Set linker for the target + CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: timeturner-armv7 + path: target/${{ env.RUST_TARGET }}/release/timeturner