working webapp with CI #1
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
name: CI | |
on: | |
push: | |
branches: [ "dev, master" ] | |
pull_request: | |
branches: [ "master" ] | |
env: | |
CARGO_TERM_COLOR: always | |
SQLX_VERSION: 0.7.4 | |
SQLX_FEATURES: "rustls,sqlite" | |
jobs: | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# - name: Install Rust toolchain | |
# uses: dtolnay/rust-toolchain@stable | |
- name: Rust Cache | |
uses: Swatinem/[email protected] | |
with: | |
key: sqlx-${{ env.SQLX_VERSION }} | |
- name: Install sqlx-cli | |
run: | |
cargo install sqlx-cli | |
--version=${{ env.SQLX_VERSION }} | |
--no-default-features | |
--features=${{ env.SQLX_FEATURES }} | |
--locked | |
- name: Migrate db | |
run: RESET_DB=true ./scripts/init_actor_db.sh | |
- name: Check sqlx-data.json is up to date | |
run: cargo sqlx prepare --workspace --check | |
- name: Run tests | |
run: cargo test | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Enforce formatting | |
run: cargo fmt --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name : Checkout repository | |
uses: actions/checkout@v4 | |
- name: Rust Cache | |
uses: Swatinem/[email protected] | |
with: | |
key: sqlx-${{ env.SQLX_VERSION }} | |
- name: Install sqlx-cli | |
run: | |
cargo install sqlx-cli | |
--version=${{ env.SQLX_VERSION }} | |
--no-default-features | |
--features=${{ env.SQLX_FEATURES }} | |
--locked | |
- name: Migrate db | |
run: RESET_DB=true ./scripts/init_actor_db.sh | |
- name: Linting | |
run: cargo clippy -- -D warnings | |
coverage: | |
name: Code coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name : Checkout repository | |
uses: actions/checkout@v4 | |
- name: Rust Cache | |
uses: Swatinem/[email protected] | |
with: | |
key: sqlx-${{ env.SQLX_VERSION }} | |
- name: Install sqlx-cli | |
run: | |
cargo install sqlx-cli | |
--version=${{ env.SQLX_VERSION }} | |
--no-default-features | |
--features=${{ env.SQLX_FEATURES }} | |
--locked | |
- name: Migrate db | |
run: RESET_DB=true ./scripts/init_actor_db.sh | |
- name: Generate code coverage | |
run: cargo install cargo-tarpaulin && cargo tarpaulin --verbose --workspace |