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.
115 lines
3.1 KiB
YAML
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
|