name: CI on: [push, pull_request] jobs: test: name: Test runs-on: ${{ matrix.os }} strategy: matrix: target: - aarch64-unknown-linux-gnu - arm-unknown-linux-gnueabi - arm-unknown-linux-gnueabihf - i586-unknown-linux-gnu - i686-unknown-linux-gnu - mips-unknown-linux-gnu - mips64-unknown-linux-gnuabi64 - mips64el-unknown-linux-gnuabi64 - mipsel-unknown-linux-gnu - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu - thumbv6m-none-eabi - thumbv7em-none-eabi - thumbv7em-none-eabihf - thumbv7m-none-eabi - wasm32-unknown-unknown - x86_64-unknown-linux-gnu - x86_64-apple-darwin - i686-pc-windows-msvc - x86_64-pc-windows-msvc - i686-pc-windows-gnu - x86_64-pc-windows-gnu include: - target: aarch64-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: arm-unknown-linux-gnueabi os: ubuntu-latest rust: nightly - target: arm-unknown-linux-gnueabihf os: ubuntu-latest rust: nightly - target: i586-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: i686-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: mips-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: mips64-unknown-linux-gnuabi64 os: ubuntu-latest rust: nightly - target: mips64el-unknown-linux-gnuabi64 os: ubuntu-latest rust: nightly - target: mipsel-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: powerpc-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: powerpc64-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: powerpc64le-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: thumbv6m-none-eabi os: ubuntu-latest rust: nightly - target: thumbv7em-none-eabi os: ubuntu-latest rust: nightly - target: thumbv7em-none-eabihf os: ubuntu-latest rust: nightly - target: thumbv7m-none-eabi os: ubuntu-latest rust: nightly - target: wasm32-unknown-unknown os: ubuntu-latest rust: nightly - target: x86_64-unknown-linux-gnu os: ubuntu-latest rust: nightly - target: x86_64-apple-darwin os: macos-latest rust: nightly - target: i686-pc-windows-msvc os: windows-latest rust: nightly - target: x86_64-pc-windows-msvc os: windows-latest rust: nightly - target: i686-pc-windows-gnu os: windows-latest rust: nightly-i686-gnu - target: x86_64-pc-windows-gnu os: windows-latest rust: nightly-x86_64-gnu steps: - uses: actions/checkout@master with: submodules: true - name: Install Rust (rustup) run: rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} if: matrix.os != 'macos-latest' - name: Install Rust (macos) run: | curl https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly echo "##[add-path]$HOME/.cargo/bin" if: matrix.os == 'macos-latest' - run: rustup target add ${{ matrix.target }} - name: Download compiler-rt reference sources run: | curl -L -o code.tar.gz https://github.com/rust-lang/llvm-project/archive/rustc/8.0-2019-03-18.tar.gz tar xzf code.tar.gz --strip-components 1 llvm-project-rustc-8.0-2019-03-18/compiler-rt echo "##[set-env name=RUST_COMPILER_RT_ROOT]./compiler-rt" shell: bash # Non-linux tests just use our raw script - run: ./ci/run.sh ${{ matrix.target }} if: matrix.os != 'ubuntu-latest' shell: bash # Wasm is special and is just build as a smoke test - run: cargo build --target ${{ matrix.target }} if: matrix.target == 'wasm32-unknown-unknown' # Otherwise we use our docker containers to run builds - run: cargo generate-lockfile && ./ci/run-docker.sh ${{ matrix.target }} if: matrix.target != 'wasm32-unknown-unknown' && matrix.os == 'ubuntu-latest' rustfmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@master with: submodules: true - name: Install Rust run: rustup update stable && rustup default stable && rustup component add rustfmt - run: cargo fmt -- --check