name: Rust on: [push, pull_request] env: CARGO_TERM_COLOR: always jobs: test: name: Test runs-on: ubuntu-latest services: postgres: image: postgres ports: - 5432:5432 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Migrate database run: | sudo apt-get install libpq-dev -y cargo install --version=0.1.0-beta.1 sqlx-cli --no-default-features --features postgres SKIP_DOCKER=true cd chapter03-1 && ./scripts/init_db.sh - uses: actions-rs/cargo@v1 with: command: test fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - run: rustup component add rustfmt - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest services: postgres: image: postgres ports: - 5432:5432 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - run: rustup component add clippy - name: Migrate database run: | sudo apt-get install libpq-dev -y cargo install --version=0.1.0-beta.1 sqlx-cli --no-default-features --features postgres SKIP_DOCKER=true cd chapter03-1 && ./scripts/init_db.sh - uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings coverage: name: Code coverage runs-on: ubuntu-latest services: postgres: image: postgres ports: - 5432:5432 steps: - name: Checkout repository uses: actions/checkout@v2 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Migrate database run: | sudo apt-get install libpq-dev -y cargo install --version=0.1.0-beta.1 sqlx-cli --no-default-features --features postgres SKIP_DOCKER=true cd chapter03-1 && ./scripts/init_db.sh - name: Run cargo-tarpaulin uses: actions-rs/tarpaulin@v0.1 with: args: '--ignore-tests'