GitHub CI: Update and rename actions #1
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: build-and-test | |
permissions: | |
contents: read | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- dev | |
workflow_dispatch: | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: short | |
jobs: | |
build-and-test: | |
runs-on: ${{ matrix.runner_os }} | |
strategy: | |
matrix: | |
include: | |
- target: aarch64-apple-darwin | |
runner_os: macos-latest | |
- target: x86_64-pc-windows-msvc | |
runner_os: windows-latest | |
- target: x86_64-unknown-linux-musl | |
runner_os: ubuntu-latest | |
steps: | |
- name: Install dependencies for musl libc | |
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 | |
# Checkout the repository before the remaining steps that depend on it. | |
# All preceding steps are independent of the repository contents. | |
- 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 between different actions. | |
shared-key: "build-and-test" | |
- 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 all features enabled | |
run: | | |
cargo test --locked --workspace --all-targets --all-features --no-run | |
- name: Run tests with all features enabled | |
run: | | |
cargo test --locked --workspace --all-targets --all-features -- --nocapture --quiet |