Skip to content

db: Combine playlist repo methods into one #761

db: Combine playlist repo methods into one

db: Combine playlist repo methods into one #761

# 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