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: --target=aarch64-unknown-linux-gnu # - name: Run cargo test # uses: actions-rs/cargo@v1 # with: # use-cross: true # command: test # args: --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) # continue-on-error: true # 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: --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 20.04 (glibc) 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 override: true - name: Run cargo build uses: actions-rs/cargo@v1 with: command: build - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test # - 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 - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test - name: Strip binary run: strip target/release/ouch - name: Upload binary uses: actions/upload-artifact@v2 with: name: 'ouch-x86_64-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: --target x86_64-pc-windows-gnu # - name: Run cargo test # uses: actions-rs/cargo@v1 # with: # command: test # args: --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