diff options
Diffstat (limited to 'library/stdarch/.github/workflows')
-rw-r--r-- | library/stdarch/.github/workflows/main.yml | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/library/stdarch/.github/workflows/main.yml b/library/stdarch/.github/workflows/main.yml new file mode 100644 index 000000000..fd8713ff8 --- /dev/null +++ b/library/stdarch/.github/workflows/main.yml @@ -0,0 +1,225 @@ +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 }} |