Version 1.35.0 (#654) #993
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: | |
name: Build and test | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
- beta | |
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@v3 | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: ${{ runner.os }}-${{ matrix.backend }}-cargo-${{ hashFiles('**/Cargo.toml') }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libpq-dev | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
- uses: davidB/rust-cargo-make@v1 | |
- name: Build rust-decimal | |
run: cargo build --workspace --all-features # Important to keep this to ensure docs.rs passes | |
- name: Run no_std tests | |
run: cargo make test-no-std | |
- name: Run default tests | |
run: cargo make test-default | |
- name: Run legacy operation tests | |
run: cargo make test-legacy-ops | |
- name: Run mathematical function tests | |
run: cargo make test-maths | |
- name: Run miscellaneous tests | |
run: cargo make test-misc | |
- name: Run database tests | |
run: cargo make test-db | |
- name: Run serde tests | |
run: cargo make test-serde | |
- name: Run macro tests | |
run: cargo make test-macros | |
check_style: | |
name: Check file formatting and style | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- 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 | |
fuzz: | |
name: Fuzz | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- 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 | |
minimum_rust_version: | |
name: Check minimum rust version | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- 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 |