name: Continuous Integration on: push: branches: - master pull_request: jobs: format: runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true profile: minimal components: rustfmt default: true - name: Cargo cache uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }} - name: Format uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check test: runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true default: true profile: minimal - name: Cargo cache uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }} - name: System dependencies run: sudo apt-get update; sudo apt-get install libudev-dev libgbm-dev libxkbcommon-dev libegl1-mesa-dev libwayland-dev libinput-dev libsystemd-dev libdbus-1-dev libdisplay-info-dev libpixman-1-dev - name: Build cache uses: actions/cache@v4 with: path: target key: ${{ runner.os }}-build-rust_stable-smithay-feature_${{ matrix.features }}-${{ hashFiles('**/Cargo.toml') }} - name: Build and install Libseat run: | sudo apt-get install meson ninja-build wget https://git.sr.ht/~kennylevinsen/seatd/archive/0.5.0.tar.gz -O libseat-source.tar.gz tar xf libseat-source.tar.gz cd seatd-0.5.0 meson -Dbuiltin=enabled -Dserver=disabled -Dexamples=disabled -Dman-pages=disabled build . ninja -C build sudo meson install -C build sudo ldconfig - name: Test features uses: actions-rs/cargo@v1 env: RUST_BACKTRACE: full with: command: test args: --all-features