summaryrefslogtreecommitdiffstats
path: root/library/stdarch/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'library/stdarch/.github/workflows')
-rw-r--r--library/stdarch/.github/workflows/main.yml225
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 }}