name: CI on: push: branches: ["master", "main"] pull_request: branches: ["master", "main"] env: CARGO_TERM_COLOR: always jobs: build-ubuntu: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - features: "default" args: "" - features: "networking" args: "--features networking" - features: "no-default-features" args: "--no-default-features" steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y \ llvm clang libclang-dev \ pkg-config \ libglib2.0-dev libcairo2-dev libpango1.0-dev libatk1.0-dev \ libpam0g-dev libdbus-1-dev \ libwayland-dev libxkbcommon-dev - name: Build (${{ matrix.features }}) run: cargo build --verbose ${{ matrix.args }} - name: Run tests run: cargo test --verbose build-debian: runs-on: ubuntu-latest container: debian:stable-slim steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 - name: Install system dependencies run: | apt-get update apt-get install -y \ llvm clang libclang-dev \ pkg-config \ libglib2.0-dev libcairo2-dev libpango1.0-dev libatk1.0-dev \ libpam0g-dev libdbus-1-dev \ libwayland-dev libxkbcommon-dev \ cargo rustc - name: Build run: cargo build --verbose build-fedora: runs-on: ubuntu-latest container: fedora:latest steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 - name: Install system dependencies run: | dnf install -y \ llvm clang libclang-devel \ pkg-config \ glib2-devel cairo-devel pango-devel atk-devel \ pam-devel dbus-devel \ wayland-devel libxkbcommon-devel \ cargo rust - name: Build run: cargo build --verbose build-arch: runs-on: ubuntu-latest container: archlinux:latest steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 - name: Install system dependencies run: | pacman -Sy --noconfirm \ llvm clang pkgconf \ glib2 cairo pango atk \ pam dbus \ wayland libxkbcommon \ rust cargo - name: Build run: cargo build --verbose build-opensuse: runs-on: ubuntu-latest container: opensuse/tumbleweed:latest steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 - name: Install system dependencies run: | zypper install -y \ llvm clang \ pkg-config \ glib2-devel cairo-devel pango-devel atk-devel \ pam-devel dbus-1-devel \ wayland-devel libxkbcommon-devel \ rust cargo - name: Build run: cargo build --verbose