Revise basic newtypes #763
Workflow file for this run
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
# SPDX-FileCopyrightText: Copyright (C) 2018-2023 Uwe Klotz <uwedotklotzatgmaildotcom> et al. | |
# SPDX-License-Identifier: CC0-1.0 | |
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow | |
name: continuous-integration | |
permissions: | |
contents: read | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- dev | |
workflow_dispatch: | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: short | |
jobs: | |
continuous-integration: | |
name: Building workspace projects and running tests | |
runs-on: ${{ matrix.runner_os }} | |
strategy: | |
matrix: | |
target: | |
- x86_64-unknown-linux-musl | |
include: | |
- target: x86_64-unknown-linux-musl | |
runner_os: ubuntu-latest | |
- target: x86_64-apple-darwin | |
runner_os: macos-latest | |
- target: x86_64-pc-windows-msvc | |
runner_os: windows-latest | |
steps: | |
- name: Install dependencies for `musl libc` on Linux | |
if: matrix.target == 'x86_64-unknown-linux-musl' | |
run: | | |
sudo apt -y install musl-tools | |
# See also: <https://github.com/emilk/egui/blob/master/.github/workflows/rust.yml> | |
- name: Install dependencies for `egui` on Linux | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev | |
# See also: <https://github.com/rusqlite/rusqlite/blob/master/.github/workflows/main.yml> | |
- name: Add LLVM path on Windows | |
if: runner.os == 'Windows' | |
run: | | |
echo "C:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
- name: Install Rust toolchains for both native target and WASM | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: ${{ matrix.target }}, wasm32-unknown-unknown | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Cache Rust toolchain and build artifacts | |
uses: Swatinem/rust-cache@v2 | |
with: | |
# Distinguished by the action name to avoid sharing across different actions! | |
shared-key: "continuous-integration" | |
- name: Check aoide-core | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/core/Cargo.toml | |
- name: Check aoide-core-json | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/core-json/Cargo.toml | |
- name: Check aoide-core-api | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/core-api/Cargo.toml | |
- name: Check aoide-core-api-json | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/core-api-json/Cargo.toml | |
- name: Check aoide-desktop-app | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/desktop-app/Cargo.toml | |
- name: Check aoide-media | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/media-file/Cargo.toml | |
- name: Check aoide-repo | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/repo/Cargo.toml | |
- name: Check aoide-repo-sqlite | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/repo-sqlite/Cargo.toml | |
- name: Check aoide-storage-sqlite | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/storage-sqlite/Cargo.toml | |
- name: Check aoide-search-index-tantivy | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/search-index-tantivy/Cargo.toml | |
- name: Check aoide-usecases | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/usecases/Cargo.toml | |
- name: Check aoide-usecases-sqlite | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/usecases-sqlite/Cargo.toml | |
- name: Check aoide-backend-embedded | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/backend-embedded/Cargo.toml | |
- name: Check aoide-backend-webapi-json | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/backend-webapi-json/Cargo.toml | |
- name: Check aoide-websrv-warp-sqlite | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/websrv-warp-sqlite/Cargo.toml | |
- name: Check aoide-websrv | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path websrv/Cargo.toml | |
- name: Check aoide-client | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path crates/client/Cargo.toml | |
- name: Check aoide-webcli | |
run: | | |
cargo check --locked --all-targets --all-features --manifest-path webcli/Cargo.toml | |
- name: Build tests with default features | |
run: | | |
cargo test --locked --workspace --all-targets --no-run | |
- name: Run tests with default features | |
run: | | |
cargo test --locked --workspace --all-targets -- --nocapture --quiet | |
- name: Build workspace with profile `production` and default features | |
run: | | |
cargo build --locked --workspace --all-targets --profile production |