Skip to content

release: v0.3.3

release: v0.3.3 #99

Workflow file for this run

name: Rust
on:
push:
branches: [ "main" ]
tags: [ "*" ]
pull_request:
branches: [ "*" ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref}}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
DATABASE_URL: "postgresql://postgres:password@postgres:5432/baraddur"
SQLX_OFFLINE: "true"
jobs:
check:
runs-on: ubuntu-latest
container: docker-oss.nexus.famedly.de/rust-container:nightly
name: Formatting, lints, syntax, and typos
steps:
- uses: actions/checkout@v4
- uses: famedly/backend-build-workflows/.github/actions/rust-prepare@main
with:
gitlab_user: ${{ secrets.GITLAB_USER }}
gitlab_pass: ${{ secrets.GITLAB_PASS }}
gitlab_ssh: ${{ secrets.CI_SSH_PRIVATE_KEY}}
- name: Caching
uses: Swatinem/rust-cache@68b3cb7503c78e67dae8373749990a220eb65352
with:
shared-key: "stable"
- name: Typos
uses: crate-ci/typos@ef5fcf92dfbd679f97c0371159e143852f7b1eb1
- name: Check
shell: bash
env:
SQLX_OFFLINE: "true"
run: |
cargo +${NIGHTLY_VERSION} fmt -- --check
cargo clippy --workspace --all-targets -- -D warnings
test:
runs-on: ubuntu-latest
container: docker-oss.nexus.famedly.de/rust-container:nightly
name: Tests and coverage
services:
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
POSTGRES_DB: baraddur
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- uses: famedly/backend-build-workflows/.github/actions/rust-prepare@main
with:
gitlab_user: ${{ secrets.GITLAB_USER }}
gitlab_pass: ${{ secrets.GITLAB_PASS }}
gitlab_ssh: ${{ secrets.CI_SSH_PRIVATE_KEY}}
- name: Caching
uses: Swatinem/rust-cache@68b3cb7503c78e67dae8373749990a220eb65352
with:
shared-key: "stable"
- name: Test
shell: bash
run: |
sqlx migrate run
cargo sqlx prepare --check -- --all-targets --all-features
cargo llvm-cov nextest --profile ci --workspace --lcov --output-path lcov.info
- name: Codecov - Upload coverage
uses: codecov/codecov-action@v4
with:
token: ${{secrets.CODECOV_TOKEN}}
files: "lcov.info"
- name: Codecov - Upload test results
uses: codecov/test-results-action@v1
with:
token: ${{secrets.CODECOV_TOKEN}}
doc-test:
runs-on: ubuntu-latest
container: ghcr.io/famedly/rust-container:nightly
name: Documentation tests
steps:
- uses: actions/checkout@v4
- uses: famedly/backend-build-workflows/.github/actions/rust-prepare@main
with:
gitlab_user: ${{ secrets.GITLAB_USER }}
gitlab_pass: ${{ secrets.GITLAB_PASS }}
gitlab_ssh: ${{ secrets.CI_SSH_PRIVATE_KEY}}
- name: Caching
uses: Swatinem/rust-cache@68b3cb7503c78e67dae8373749990a220eb65352
with:
shared-key: "nightly"
- name: Documentation tests
shell: bash
env:
SQLX_OFFLINE: "true"
run: |
cargo +${NIGHTLY_VERSION} test --doc --workspace --verbose
udeps:
runs-on: ubuntu-latest-16core
container: ghcr.io/famedly/rust-container:nightly
name: Unused dependencies
steps:
- uses: actions/checkout@v3
- uses: famedly/backend-build-workflows/.github/actions/rust-prepare@main
with:
gitlab_user: ${{ secrets.GITLAB_USER }}
gitlab_pass: ${{ secrets.GITLAB_PASS }}
gitlab_ssh: ${{ secrets.CI_SSH_PRIVATE_KEY}}
- name: Caching
uses: Swatinem/rust-cache@68b3cb7503c78e67dae8373749990a220eb65352
with:
shared-key: "nightly"
- name: Unused dependencies
shell: bash
env:
SQLX_OFFLINE: "true"
run: |
cargo +${NIGHTLY_VERSION} udeps