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@v4 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: targets: ${{ env.RUST_TARGET }} - name: Install cross-compilation dependencies run: | sudo dpkg --add-architecture armhf sudo apt-get update -y sudo apt-get install -y gcc-arm-linux-gnueabihf libudev-dev:armhf - 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 # Configure pkg-config for cross-compilation PKG_CONFIG_ALLOW_CROSS: 1 PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig - name: Upload artifact uses: actions/upload-artifact@v4 with: name: timeturner-armv7 path: target/${{ env.RUST_TARGET }}/release/timeturner