aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/main.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r--.github/workflows/main.yml153
1 files changed, 0 insertions, 153 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index 38c28c9..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,153 +0,0 @@
-name: CI
-
-on:
- push:
- branches:
- - master
- pull_request:
- branches:
- - master
- schedule:
- - cron: '00 01 * * *'
-env:
- RUST_BACKTRACE: 1
-jobs:
- test:
- name: Test ${{ matrix.target }}
-
- strategy:
- fail-fast: false
-
- matrix:
- include:
- - { target: x86_64-pc-windows-msvc, os: windows-latest }
- - { target: x86_64-unknown-linux-gnu, os: ubuntu-latest }
- - { target: x86_64-apple-darwin, os: macos-latest }
- - { target: x86_64-pc-windows-gnu, os: windows-latest, host: -x86_64-pc-windows-gnu }
-
- runs-on: ${{ matrix.os }}
-
- steps:
- - uses: actions/checkout@v2
- # This has a matcher for test panics, so we use it even though elsewhere
- # we use actions-rs/toolchain.
- - uses: hecrj/setup-rust-action@v1
- with:
- rust-version: stable${{ matrix.host }}
- targets: ${{ matrix.target }}
-
- - run: cargo build --features bundled --workspace --all-targets --verbose
- - run: cargo test --features bundled --workspace --all-targets --verbose
- - run: cargo test --features bundled --workspace --doc --verbose
-
- - name: Test Features
- # TODO: clang is installed on these -- but `bindgen` can't find it...
- if: matrix.os != 'windows-latest'
- run: |
- cargo test --features 'bundled-full session buildtime_bindgen time' --all-targets --workspace --verbose
- cargo test --features 'bundled-full session buildtime_bindgen time' --doc --workspace --verbose
-
- - name: Static build
- # Do we expect this to work / should we test with gnu toolchain?
- if: matrix.os == 'x86_64-pc-windows-msvc'
- env:
- RUSTFLAGS: -Ctarget-feature=+crt-static
- run: cargo build --features bundled
-
- winsqlite3:
- name: Test with winsqlite3
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v2
- - uses: hecrj/setup-rust-action@v1
- # TODO: Should this test GNU toolchain? What about +crt-static?
- # TODO: Is it worth testing other features?
- - run: cargo build --features winsqlite3 --workspace --all-targets --verbose
- - run: cargo test --features winsqlite3 --workspace --all-targets --verbose
-
- sqlcipher:
- name: Test with sqlcipher
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: hecrj/setup-rust-action@v1
- - run: sudo apt-get install sqlcipher libsqlcipher-dev
- - run: sqlcipher --version
- # TODO: Is it worth testing other features?
- - run: cargo build --features sqlcipher --workspace --all-targets --verbose
- - run: cargo test --features sqlcipher --workspace --all-targets --verbose
-
- sanitizer:
- name: Address Sanitizer
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- # Need nightly rust.
- - uses: hecrj/setup-rust-action@v1
- with:
- rust-version: nightly
- components: rust-src
- - name: Tests with asan
- env:
- RUSTFLAGS: -Zsanitizer=address
- RUSTDOCFLAGS: -Zsanitizer=address
- ASAN_OPTIONS: 'detect_stack_use_after_return=1'
- # Work around https://github.com/rust-lang/rust/issues/59125 by
- # disabling backtraces. In an ideal world we'd probably suppress the
- # leak sanitization, but we don't care about backtraces here, so long
- # as the other tests have them.
- RUST_BACKTRACE: '0'
- run: cargo -Z build-std test --features 'bundled-full session buildtime_bindgen time with-asan' --target x86_64-unknown-linux-gnu
-
- # Ensure clippy doesn't complain.
- clippy:
- name: Clippy
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: hecrj/setup-rust-action@v1
- with:
- components: clippy
- - run: cargo clippy --all-targets --workspace --features bundled -- -D warnings
- # Clippy with all non-conflicting features
- - run: cargo clippy --all-targets --workspace --features 'bundled-full session buildtime_bindgen time' -- -D warnings
-
- # Ensure patch is formatted.
- fmt:
- name: Format
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: hecrj/setup-rust-action@v1
- with:
- components: rustfmt
- - run: cargo fmt --all -- --check
-
- # Detect cases where documentation links don't resolve and such.
- doc:
- name: Docs
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: hecrj/setup-rust-action@v1
- with:
- rust-version: nightly
- # Need to use `cargo rustdoc` to actually get it to respect -D
- # warnings... Note: this also requires nightly.
- - run: cargo rustdoc --features 'bundled-full session buildtime_bindgen time' -- -D warnings
-
- codecov:
- name: Generate code coverage
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: hecrj/setup-rust-action@v1
- - name: Run cargo-tarpaulin
- uses: actions-rs/tarpaulin@v0.1
- with:
- # Intentionally omit time feature until we're on time 0.3, at which
- # point it should be added to `bundled-full`.
- args: '--features "bundled-full session buildtime_bindgen"'
-
- - name: Upload to codecov.io
- uses: codecov/codecov-action@v1