name: CI on: push: branches: - auto - try pull_request: branches: - master jobs: style: name: Check Style runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install Rust run: rustup update nightly && rustup default nightly - run: ci/style.sh docs: name: Build Documentation needs: [style] runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install Rust run: rustup update nightly && rustup default nightly - run: ci/dox.sh env: CI: 1 - name: Publish documentation run: | cd target/doc git init git add . git -c user.name='ci' -c user.email='ci' commit -m init git push -f -q https://git:${{ secrets.github_token }}@github.com/${{ github.repository }} HEAD:gh-pages if: github.event_name == 'push' && github.event.ref == 'refs/heads/master' verify: name: Automatic intrinsic verification needs: [style] runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install Rust run: rustup update nightly && rustup default nightly - run: cargo test --manifest-path crates/stdarch-verify/Cargo.toml env_override: name: Env Override needs: [style] runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install Rust run: rustup update nightly && rustup default nightly - run: RUST_STD_DETECT_UNSTABLE=avx cargo test --features=std_detect_env_override --manifest-path crates/std_detect/Cargo.toml env_override_no_avx test: needs: [style] name: Test runs-on: ${{ matrix.os }} strategy: matrix: target: # Dockers that are run through docker on linux - i686-unknown-linux-gnu - x86_64-unknown-linux-gnu - x86_64-unknown-linux-gnu-emulated - arm-unknown-linux-gnueabihf - armv7-unknown-linux-gnueabihf - aarch64-unknown-linux-gnu - riscv64gc-unknown-linux-gnu - powerpc64le-unknown-linux-gnu - mips-unknown-linux-gnu - mips64-unknown-linux-gnuabi64 - mips64el-unknown-linux-gnuabi64 - s390x-unknown-linux-gnu - wasm32-wasi - i586-unknown-linux-gnu - x86_64-linux-android - arm-linux-androideabi - mipsel-unknown-linux-musl - aarch64-linux-android - nvptx64-nvidia-cuda - thumbv6m-none-eabi - thumbv7m-none-eabi - thumbv7em-none-eabi - thumbv7em-none-eabihf # macOS targets #- x86_64-apple-darwin - aarch64-apple-darwin # FIXME: gh-actions build environment doesn't have linker support # - i686-apple-darwin # Windows targets - x86_64-pc-windows-msvc - i686-pc-windows-msvc # FIXME: Disassembly not implemented for the # following targets: # - x86_64-pc-windows-gnu: # - i686-pc-windows-gnu: # - aarch64-pc-windows-msvc: include: - target: i686-unknown-linux-gnu os: ubuntu-latest - target: x86_64-unknown-linux-gnu os: ubuntu-latest - target: x86_64-unknown-linux-gnu-emulated os: ubuntu-latest test_everything: true rustflags: --cfg stdarch_intel_sde - target: arm-unknown-linux-gnueabihf os: ubuntu-latest - target: armv7-unknown-linux-gnueabihf os: ubuntu-latest - target: mips-unknown-linux-gnu os: ubuntu-latest norun: true - target: mips64-unknown-linux-gnuabi64 os: ubuntu-latest norun: true - target: mips64el-unknown-linux-gnuabi64 os: ubuntu-latest norun: true - target: powerpc64le-unknown-linux-gnu os: ubuntu-latest disable_assert_instr: true - target: s390x-unknown-linux-gnu os: ubuntu-latest - target: wasm32-wasi os: ubuntu-latest - target: aarch64-apple-darwin os: macos-latest norun: true - target: aarch64-unknown-linux-gnu os: ubuntu-latest - target: x86_64-apple-darwin os: macos-11 - target: x86_64-pc-windows-msvc os: windows-latest - target: i686-pc-windows-msvc os: windows-latest - target: i586-unknown-linux-gnu os: ubuntu-latest - target: x86_64-linux-android os: ubuntu-latest disable_assert_instr: 1 - target: arm-linux-androideabi os: ubuntu-latest disable_assert_instr: 1 - target: mipsel-unknown-linux-musl os: ubuntu-latest norun: 1 - target: aarch64-linux-android os: ubuntu-latest disable_assert_instr: 1 - target: nvptx64-nvidia-cuda os: ubuntu-latest - target: thumbv6m-none-eabi os: ubuntu-latest - target: thumbv7m-none-eabi os: ubuntu-latest - target: thumbv7em-none-eabi os: ubuntu-latest - target: thumbv7em-none-eabihf os: ubuntu-latest - target: riscv64gc-unknown-linux-gnu os: ubuntu-latest steps: - uses: actions/checkout@master with: submodules: recursive - name: Install Rust (rustup) run: | rustup update nightly --no-self-update rustup default nightly if: matrix.os != 'macos-latest' - name: Install Rust (macos) run: | curl https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly echo "$HOME/.cargo/bin" >> $GITHUB_PATH rustup update nightly --no-self-update rustup default nightly if: matrix.os == 'macos-latest' - run: | rustup default nightly rustup target add ${{ matrix.target }} if: "!endsWith(matrix.target, 'emulated')" - name: Setup (aarch64-apple-darwin) run: | echo "SDKROOT=$(xcrun -sdk macosx11.0 --show-sdk-path)" >> $GITHUB_ENV echo "MACOS_DEPLOYMENT_TARGET=$(xcrun -sdk macosx11.0 --show-sdk-platform-version)" >> $GITHUB_ENV if: matrix.target == 'aarch64-apple-darwin' - run: cargo generate-lockfile # Configure some env vars based on matrix configuration - run: echo "NORUN=1" >> $GITHUB_ENV if: matrix.norun != '' || startsWith(matrix.target, 'thumb') || matrix.target == 'nvptx64-nvidia-cuda' - run: echo "STDARCH_TEST_EVERYTHING=1" >> $GITHUB_ENV if: matrix.test_everything != '' - run: echo "RUSTFLAGS=${{ matrix.rustflags }}" >> $GITHUB_ENV if: matrix.rustflags != '' - run: echo "STDARCH_DISABLE_ASSERT_INSTR=1" >> $GITHUB_ENV if: matrix.disable_assert_instr != '' - run: echo "NOSTD=1" >> $GITHUB_ENV if: startsWith(matrix.target, 'thumb') || matrix.target == 'nvptx64-nvidia-cuda' # Windows & OSX go straight to `run.sh` ... - run: ./ci/run.sh shell: bash if: matrix.os != 'ubuntu-latest' || startsWith(matrix.target, 'thumb') env: TARGET: ${{ matrix.target }} # ... while Linux goes to `run-docker.sh` - run: ./ci/run-docker.sh ${{ matrix.target }} shell: bash if: "matrix.os == 'ubuntu-latest' && !startsWith(matrix.target, 'thumb')" env: TARGET: ${{ matrix.target }}