name: Build
on:
pull_request:
push:
branches:
- main
jobs:
check:
name: Check
runs-on: ubuntu-latest
env:
DATABASE_URL: "sqlite:cache-vault.db"
steps:
- name: Checkout sources
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install tools
uses: taiki-e/install-action@5ab5d1729c22acd8f798b267eadcfe5e5be6f5c2 with:
tool: sqlx-cli
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4
- name: create db file
run: touch cache-vault.db
- name: migrate
run: sqlx migrate run
- name: prepare
run: cargo sqlx prepare
- name: Cargo check
run: cargo check
test:
name: Test Suite
runs-on: ubuntu-latest
env:
DATABASE_URL: "sqlite:cache-vault.db"
steps:
- name: Checkout sources
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install tools
uses: taiki-e/install-action@5ab5d1729c22acd8f798b267eadcfe5e5be6f5c2 with:
tool: cargo-nextest,sqlx-cli
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4
- name: create db file
run: touch cache-vault.db
- name: migrate
run: sqlx migrate run
- name: prepare
run: cargo sqlx prepare
- name: Run cargo test
run: cargo nextest run
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4
- name: Run cargo fmt
run: cargo fmt --all -- --check
- uses: giraffate/clippy-action@13b9d32482f25d29ead141b79e7e04e7900281e0 with:
reporter: github-pr-review
github_token: ${{ secrets.GITHUB_TOKEN }}