chore(workflows): update CI

This commit is contained in:
Kristofers Solo 2024-03-23 16:57:25 +02:00
parent c1a4f5d124
commit 3e929e1105
2 changed files with 63 additions and 8 deletions

View File

@ -2,14 +2,33 @@ name: Rust
on: [push, pull_request] on: [push, pull_request]
env: env:
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
SQLX_VERSION: 0.7
SQLX_FEATURES: "rustls,postgres"
jobs: jobs:
test: test:
name: Test name: Test
runs-on: ubuntu-latest runs-on: ubuntu-latest
services:
postgres:
image: postgres:14
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
with:
key: sqlx-${{ env.SQLX_VERSION }}
- name: Install sqlx-cli
run: cargo install sqlx-cli --version ${{ env.SQLX_VERSION }} --features ${{ env.SQLX_FEATURES }} --no-default-features --locked
- name: Install postgresql-client
run: sudo apt-get update && sudo apt-get install -y postgresql-client
- name: Migrate database
run: SKIP_DOCKER=true ./scripts/init_db
- name: Run tests - name: Run tests
run: cargo test run: cargo test
fmt: fmt:
@ -25,23 +44,59 @@ jobs:
clippy: clippy:
name: Clippy name: Clippy
runs-on: ubuntu-latest runs-on: ubuntu-latest
services:
postgres:
image: postgres:14
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: postgres
ports:
- 5432:5432
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
components: clippy components: clippy
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
with:
key: sqlx-${{ env.SQLX_VERSION }}
- name: Install sqlx-cli
run: cargo install sqlx-cli --version=${{ env.SQLX_VERSION }} --features ${{ env.SQLX_FEATURES }} --no-default-features --locked
- name: Install postgresql-client
run: sudo apt-get update && sudo apt-get install postgresql-client -y
- name: Migrate database
run: SKIP_DOCKER=true ./scripts/init_db
- name: Linting - name: Linting
run: cargo clippy -- -D warnings
coverage: coverage:
name: Code coverage name: Code coverage
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: services:
image: xd009642/tarpaulin postgres:
options: --security-opt seccomp=unconfined image: postgres:14
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: postgres
ports:
- 5432:5432
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: Install postgresql-client
run: sudo apt-get update && sudo apt-get install postgresql-client -y
- uses: Swatinem/rust-cache@v2
with:
key: sqlx-${{ env.SQLX_VERSION }}
- name: Install sqlx-cli
run:
cargo install sqlx-cli
--version=${{ env.SQLX_VERSION }}
--features ${{ env.SQLX_FEATURES }}
--no-default-features
--locked
- name: Migrate database
run: SKIP_DOCKER=true ./scripts/init_db
- name: Generate code coverage - name: Generate code coverage
run: | run: cargo install cargo-tarpaulin && cargo tarpaulin --verbose --workspace run: cargo clippy -- -D warnings
cargo tarpaulin --verbose --workspace

View File

@ -21,7 +21,7 @@ DB_PORT="${POSTGRES_PORT:=5432}"
DB_HOST="${POSTGRES_HOST:=localhost}" DB_HOST="${POSTGRES_HOST:=localhost}"
if [[ -z "${SKIP_DOCKER}" ]]; then if [[ -z "${SKIP_DOCKER}" ]]; then
doas docker run\ docker run\
-e POSTGRES_USER=${DB_USER}\ -e POSTGRES_USER=${DB_USER}\
-e POSTGRES_PASSWORD=${DB_PASSWORD}\ -e POSTGRES_PASSWORD=${DB_PASSWORD}\
-e POSTGRES_DB=${DB_NAME}\ -e POSTGRES_DB=${DB_NAME}\