on: [push, pull_request] name: build-and-test jobs: aarch64-glibc: name: Ubuntu 18.04 (for ARMv8 - glibc) runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: aarch64-unknown-linux-gnu override: true - name: Install binutils-arm-none-eabi run: | sudo apt-get update sudo apt-get install binutils-aarch64-linux-gnu - uses: actions-rs/cargo@v1 with: use-cross: true command: build args: --release --target=aarch64-unknown-linux-gnu - name: Run cargo test uses: actions-rs/cargo@v1 with: use-cross: true command: test args: --release --target=aarch64-unknown-linux-gnu - name: Strip binary run: aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-aarch64-linux-gnu' path: target/aarch64-unknown-linux-gnu/release/ouch armv7-glibc: name: Ubuntu 18.04 (for ARMv7 - glibc) runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: armv7-unknown-linux-gnueabihf override: true - name: Install binutils-arm-none-eabi run: | sudo apt-get update sudo apt-get install binutils-arm-none-eabi - uses: actions-rs/cargo@v1 with: use-cross: true command: build args: --release --target=armv7-unknown-linux-gnueabihf - name: Run cargo test uses: actions-rs/cargo@v1 with: use-cross: true command: test args: --target=armv7-unknown-linux-gnueabihf - name: Strip binary run: arm-none-eabi-strip target/armv7-unknown-linux-gnueabihf/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-armv7-linux-gnueabihf' path: target/armv7-unknown-linux-gnueabihf/release/ouch x86_64_musl: name: Ubuntu 20.04 (musl) runs-on: ubuntu-20.04 strategy: matrix: rust: - stable steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable target: x86_64-unknown-linux-musl override: true - name: Install dependencies for musl libc run: | sudo apt-get update sudo apt-get install musl-tools - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build args: --release --target x86_64-unknown-linux-musl - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test args: --target x86_64-unknown-linux-musl - name: Strip binary run: strip target/x86_64-unknown-linux-musl/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-x86_64-linux-musl' path: target/x86_64-unknown-linux-musl/release/ouch x86_64_glibc: name: Ubuntu 18.04 (glibc) runs-on: ubuntu-18.04 strategy: matrix: rust: - stable steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build args: --release - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test args: --release - name: Strip binary run: strip target/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-x86_64-linux-gnu' path: target/release/ouch x86_64_macos: name: macOS (x86_64) runs-on: macos-latest strategy: matrix: rust: - stable steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable target: x86_64-apple-darwin override: true - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build args: --release --target x86_64-apple-darwin - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test - name: Strip binary run: strip target/x86_64-apple-darwin/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-x86_64-apple-darwin' path: target/release/ouch aarch64_macos: name: macOS (aarch64) runs-on: macos-latest strategy: matrix: rust: - stable steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable target: aarch64-apple-darwin override: true - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build args: --release --target aarch64-apple-darwin - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test - name: Strip binary run: strip target/aarch64-apple-darwin/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-aarch64-apple-darwin' path: target/release/ouch windows-msvc: name: Windows Server (MSVC) runs-on: windows-latest strategy: matrix: rust: - stable steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} override: true - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build args: --release - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-x86_64-pc-windows-msvc' path: target\release\ouch.exe windows-mingw: name: Windows Server (MinGW) runs-on: windows-2019 strategy: matrix: rust: - stable steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable target: x86_64-pc-windows-gnu override: true - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build args: --release --target x86_64-pc-windows-gnu - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test args: --release --target x86_64-pc-windows-gnu - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-x86_64-pc-windows-gnu' path: target\x86_64-pc-windows-gnu\release\ouch.exe