libcosmic/.github/workflows/ci.yml
Michael Mc Donnell 79b9043a9e Add more examples to CI
Some of the examples had not been added to the CI. This means that they
can break silently if the API changes. This change makes it more obvious
if they are broken.

I've left out the multi-window example since that was broken recently.
2024-09-20 13:12:14 -10:00

115 lines
3.1 KiB
YAML

name: Continuous Integration
on:
push:
branches:
- master
pull_request:
jobs:
format:
runs-on: ubuntu-22.04
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Cargo cache
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }}
- name: Format
run: cargo fmt -- --check
tests:
needs:
- format
strategy:
fail-fast: false
matrix:
features:
- "" # for cosmic-comp, don't remove!
- 'winit_debug'
- 'winit_tokio'
- winit
- winit_wgpu
- wayland
- applet
- desktop,smol
- desktop,tokio
runs-on: ubuntu-22.04
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: recursive
- name: Get date for registry cache
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Cargo registry cache
uses: actions/cache@v3
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git
key: ${{ runner.os }}-cargo-registry-${{ steps.date.outputs.date }}
restore-keys: ${{ runner.os }}-cargo-registry-
- name: System dependencies
run: sudo apt-get update; sudo apt-get install -y libxkbcommon-dev libwayland-dev
- name: Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Test features
run: cargo test --no-default-features --features "${{ matrix.features }}"
env:
RUST_BACKTRACE: full
examples:
needs:
- format
strategy:
fail-fast: false
matrix:
examples:
- "applet"
- "application"
- "calendar"
- "config"
- "context-menu"
- "image-button"
- "menu"
- "nav-context"
- "open-dialog"
- "text-input"
runs-on: ubuntu-22.04
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: recursive
- name: Get date for registry cache
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Cargo registry cache
uses: actions/cache@v3
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git
key: ${{ runner.os }}-cargo-registry-${{ steps.date.outputs.date }}
restore-keys: ${{ runner.os }}-cargo-registry-
- name: System dependencies
run: sudo apt-get update; sudo apt-get install -y libxkbcommon-dev libwayland-dev
- name: Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Test example
run: cargo check -p "${{ matrix.examples }}"
env:
RUST_BACKTRACE: full