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 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: - "application" - "open-dialog" 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