| name: Test libloading |
| |
| on: |
| push: |
| paths-ignore: |
| - '*.mkd' |
| - 'LICENSE' |
| pull_request: |
| types: [opened, reopened, synchronize] |
| |
| jobs: |
| native-test: |
| runs-on: ${{ matrix.os }} |
| strategy: |
| fail-fast: false |
| matrix: |
| rust_toolchain: [nightly, stable, 1.40.0] |
| os: [ubuntu-latest, windows-latest, macOS-latest] |
| timeout-minutes: 20 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install Rust ${{ matrix.rust_toolchain }} |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: ${{ matrix.rust_toolchain }} |
| profile: minimal |
| components: clippy |
| default: true |
| - name: Update |
| uses: actions-rs/cargo@v1 |
| with: |
| command: update |
| args: --manifest-path=Cargo.toml |
| - name: Clippy |
| uses: actions-rs/cargo@v1 |
| with: |
| command: clippy |
| - name: Build |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --manifest-path=Cargo.toml |
| - name: Test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --manifest-path=Cargo.toml -- --nocapture |
| - name: Test Release |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --manifest-path=Cargo.toml --release -- --nocapture |
| - name: Documentation |
| uses: actions-rs/cargo@v1 |
| with: |
| command: doc |
| args: --manifest-path=Cargo.toml |
| env: |
| RUSTDOCFLAGS: --cfg docsrs |
| if: ${{ matrix.rust_toolchain == 'nightly' }} |
| |
| windows-gnu-test: |
| runs-on: windows-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| rust_toolchain: [nightly, stable] |
| rust_target: |
| - x86_64-pc-windows-gnu |
| - i686-pc-windows-gnu |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Add MSYS2 to the PATH |
| run: echo "c:/msys64/bin" | Out-File -FilePath $env:GITHUB_PATH -Append |
| - name: Add 32-bit mingw-w64 to the PATH |
| run: echo "c:/msys64/mingw32/bin" | Out-File -FilePath $env:GITHUB_PATH -Append |
| if: startsWith(matrix.rust_target, 'i686') |
| - name: Add 64-bit mingw-w64 to the PATH |
| run: echo "c:/msys64/mingw64/bin" | Out-File -FilePath $env:GITHUB_PATH -Append |
| if: startsWith(matrix.rust_target, 'x86_64') |
| - name: Set TARGET variable |
| run: echo "TARGET=${{ matrix.rust_target}}" | Out-File -FilePath $env:GITHUB_ENV -Append |
| - name: Install Rust nightly |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: ${{ matrix.rust_toolchain }} |
| target: ${{ matrix.rust_target }} |
| profile: minimal |
| default: true |
| - uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --target ${{ matrix.rust_target }} --manifest-path=Cargo.toml |
| - uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --target ${{ matrix.rust_target }} --manifest-path=Cargo.toml |
| |
| bare-cross-build: |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| rust_target: |
| # BSDs: could be tested with full system emulation |
| # - x86_64-unknown-dragonfly |
| # - x86_64-unknown-freebsd |
| - x86_64-unknown-haiku |
| # - x86_64-unknown-netbsd |
| - x86_64-unknown-openbsd |
| - x86_64-unknown-redox |
| - x86_64-fuchsia |
| timeout-minutes: 20 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install Rust nightly |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: nightly |
| profile: minimal |
| default: true |
| - name: Fix-up toolchain |
| run: | |
| rustup component add rust-src --toolchain nightly --target ${{ matrix.rust_target }} |
| - name: Update |
| uses: actions-rs/cargo@v1 |
| with: |
| command: update |
| args: --manifest-path=Cargo.toml |
| - name: Build ${{ matrix.rust_target }} |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --target ${{ matrix.rust_target }} --manifest-path=Cargo.toml -Zbuild-std |
| |
| cross-ios-build: |
| runs-on: macos-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| rust_toolchain: [nightly, stable] |
| rust_target: |
| - aarch64-apple-ios |
| - x86_64-apple-ios |
| timeout-minutes: 20 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install Rust ${{ matrix.rust_toolchain }} |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: ${{ matrix.rust_toolchain }} |
| target: ${{ matrix.rust_target }} |
| profile: minimal |
| default: true |
| - name: Update |
| uses: actions-rs/cargo@v1 |
| with: |
| command: update |
| args: --manifest-path=Cargo.toml |
| - name: Build ${{ matrix.rust_target }} |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --target=${{ matrix.rust_target }} --manifest-path=Cargo.toml |