Updating github workflow in preperation for target testing #1004
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: | |
types: [ opened, synchronize, reopened ] | |
push: | |
branches: | |
- master | |
- "[1-9].x" | |
name: Continuous integration | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
name: "CI pass" | |
needs: | |
- check_style | |
- minimum_rust_version | |
- docs | |
- test | |
steps: | |
- run: exit 0 | |
check_style: | |
name: Check file formatting and style | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: clippy, rustfmt | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: clippy-cargo-${{ hashFiles('**/Cargo.toml') }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libpq-dev | |
- name: Check file formatting | |
run: cargo fmt --all -- --check | |
- name: Run clippy | |
run: cargo clippy --workspace --all-features | |
minimum_rust_version: | |
name: Check minimum rust version | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: 1.60.0 | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: minimal_rust_version-cargo-${{ hashFiles('**/Cargo.toml') }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libpq-dev | |
- name: Use minimal dependencies | |
run: | | |
RUSTC_BOOTSTRAP=1 cargo update -Z minimal-versions | |
- name: Check build | |
run: cargo check --workspace | |
docs: | |
name: "Check documentation" | |
needs: [ test ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: nightly | |
- name: Check documentation | |
env: | |
RUSTDOCFLAGS: --cfg docsrs | |
run: cargo doc --no-deps --all-features | |
test: | |
name: "Test" | |
runs-on: ubuntu-latest | |
needs: | |
- standard_tests | |
- database_tests | |
- fuzz_tests | |
steps: | |
- run: exit 0 | |
standard_tests: | |
name: "Standard Tests" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
name: | |
- stable | |
- beta | |
# - stable / wasm32 | |
# - beta / wasm32 | |
include: | |
- name: stable | |
rust: stable | |
- name: beta | |
rust: beta | |
# - name: stable / wasm32 | |
# rust: stable | |
# target: wasm32-unknown-unknown | |
#- name: beta / wasm32 | |
# rust: beta | |
# target: wasm32-unknown-unknown | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
targets: ${{ matrix.target }} | |
- uses: davidB/rust-cargo-make@v1 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libpq-dev | |
- name: Run no_std tests | |
run: cargo make test-no-std | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run default tests | |
run: cargo make test-default | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run legacy operation tests | |
run: cargo make test-legacy-ops | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run mathematical function tests | |
run: cargo make test-maths | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run miscellaneous tests | |
run: cargo make test-misc | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run serde tests | |
run: cargo make test-serde | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run macro tests | |
run: cargo make test-macros | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
database_tests: | |
name: "Database Tests" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
name: | |
- stable | |
- beta | |
# - stable / wasm32 | |
# - beta / wasm32 | |
include: | |
- name: stable | |
rust: stable | |
- name: beta | |
rust: beta | |
# - name: stable / wasm32 | |
# rust: stable | |
# target: wasm32-unknown-unknown | |
#- name: beta / wasm32 | |
# rust: beta | |
# target: wasm32-unknown-unknown | |
services: | |
postgres: | |
image: postgres:11.6 | |
env: | |
POSTGRES_PASSWORD: '' | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
mysql: | |
image: mysql:8 | |
env: | |
MYSQL_ROOT_PASSWORD: '' | |
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' | |
ports: | |
- 3306:3306 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
targets: ${{ matrix.target }} | |
- uses: davidB/rust-cargo-make@v1 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libpq-dev | |
- name: Run database tests | |
run: cargo make test-db | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
fuzz_tests: | |
name: Fuzz Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: nightly | |
- name: Install Cargo Fuzz | |
run: cargo install cargo-fuzz | |
- uses: davidB/rust-cargo-make@v1 | |
- name: Run fuzz tests | |
run: cargo make fuzz |