name: Rust CI on: push: branches: [ main ] pull_request: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: build: name: Build and Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true components: rustfmt, clippy - name: Add ARM64 target run: rustup target add aarch64-unknown-linux-gnu - name: Install ARM64 toolchain run: | apt-get update apt-get install -y gcc-aarch64-linux-gnu - name: Cache dependencies uses: actions/cache@v3 with: path: | ~/.cargo target/ key: "${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}" restore-keys: | ${{ runner.os }}-cargo- - name: Build (x86_64) uses: actions-rs/cargo@v1 with: command: build args: --release --all-features - name: Build (ARM64) uses: actions-rs/cargo@v1 with: command: build args: --release --all-features --target aarch64-unknown-linux-gnu env: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc - name: Run tests uses: actions-rs/cargo@v1 with: command: test args: --all-features - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: binaries path: | target/release/${{ github.event.repository.name }} target/aarch64-unknown-linux-gnu/release/${{ github.event.repository.name }} - uses: robiningelbrecht/ntfy-action@v1.0.0 name: Notify via ntfy.sh if: always() with: url: ${{ secrets.NTFY_URL }} topic: ${{ secrets.NTFY_TOPIC }} job_status: ${{ job.status }}