Updating github workflow in preperation for target testing #1009
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: CI | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
# Keep this the same as this is what Github looks for to determine if the build passed | |
name: "✅ 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" | |
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 | |
- dependency_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 macro tests | |
run: cargo make test-macros | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
dependency_tests: | |
name: "Dependency 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 serde tests | |
run: cargo make test-serde | |
env: | |
CI_DECIMAL_TEST_TARGET: ${{ matrix.target }} | |
- name: Run miscellaneous dependency tests | |
run: cargo make test-misc | |
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 |