66 lines
1.5 KiB
YAML
Executable file
66 lines
1.5 KiB
YAML
Executable file
stages:
|
|
- check
|
|
- test
|
|
- build
|
|
|
|
variables:
|
|
CARGO_HOME: $CI_PROJECT_DIR/.cargo
|
|
RUST_BACKTRACE: 1
|
|
RUST_LOG: info
|
|
|
|
cache:
|
|
paths:
|
|
- .cargo/
|
|
- target/
|
|
|
|
check:
|
|
stage: check
|
|
image: rust:1.85-slim
|
|
services:
|
|
- postgres:16-alpine
|
|
variables:
|
|
POSTGRES_DB: synq_core_test
|
|
POSTGRES_USER: synq
|
|
POSTGRES_PASSWORD: synq_test_pass
|
|
DATABASE_URL: postgres://synq:synq_test_pass@postgres/synq_core_test
|
|
before_script:
|
|
- apt-get update && apt-get install -y libssl-dev pkg-config postgresql-client
|
|
- rustup component add clippy rustfmt
|
|
- cargo install sqlx-cli --no-default-features --features native-tls,postgres
|
|
- sqlx migrate run
|
|
script:
|
|
- cargo fmt --check
|
|
- cargo clippy --all-targets --all-features -- -D warnings
|
|
- cargo check --all
|
|
|
|
test:
|
|
stage: test
|
|
image: rust:1.85-slim
|
|
services:
|
|
- postgres:16-alpine
|
|
variables:
|
|
POSTGRES_DB: synq_core_test
|
|
POSTGRES_USER: synq
|
|
POSTGRES_PASSWORD: synq_test_pass
|
|
DATABASE_URL: postgres://synq:synq_test_pass@postgres/synq_core_test
|
|
before_script:
|
|
- apt-get update && apt-get install -y libssl-dev pkg-config postgresql-client
|
|
- cargo install sqlx-cli --no-default-features --features native-tls,postgres
|
|
- sqlx migrate run
|
|
script:
|
|
- cargo test --all -- --test-threads=1
|
|
artifacts:
|
|
reports:
|
|
junit: target/junit-report.xml
|
|
|
|
build-release:
|
|
stage: build
|
|
image: rust:1.85-slim
|
|
script:
|
|
- cargo build --release --all
|
|
artifacts:
|
|
paths:
|
|
- target/release/
|
|
only:
|
|
- main
|
|
- tags
|