smithay/.github/workflows/ci.yml

325 lines
8.9 KiB
YAML
Raw Normal View History

2020-04-12 07:13:28 +00:00
name: Continuous Integration
on:
push:
branches:
- master
pull_request:
jobs:
2021-07-30 16:08:42 +00:00
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@v2
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
clippy-check:
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: clippy
default: true
- name: Cargo cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }}
- name: Build cache
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-build-rust_stable-check-${{ 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
- name: Clippy Smithay
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --features "test_all_features" -- -D warnings
- name: Clippy Anvil
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --manifest-path "./anvil/Cargo.toml" --features "test_all_features" -- -D warnings
check-minimal:
env:
RUSTFLAGS: "-D warnings"
2021-07-30 16:08:42 +00:00
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
profile: minimal
default: true
- name: Cargo cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-rust_nightly-${{ 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
- name: Downgrade to minimal dependencies
uses: actions-rs/cargo@v1
with:
command: update
args: -Z minimal-versions
- name: Update exceptions
uses: actions-rs/cargo@v1
with:
command: update
args: -p libdbus-sys -p calloop:0.6.1
- name: Check
uses: actions-rs/cargo@v1
with:
command: check
args: --features "test_all_features"
smithay-tests:
needs:
- format
- clippy-check
2020-04-12 07:13:28 +00:00
strategy:
fail-fast: false
matrix:
features:
- ''
- backend_winit
- backend_drm
2021-04-30 16:37:43 +00:00
- backend_gbm
- backend_egl
2020-04-12 07:13:28 +00:00
- backend_libinput
- backend_udev
- backend_session
- backend_session_logind
2021-06-30 11:17:20 +00:00
- backend_session_libseat
2021-10-17 18:46:00 +00:00
- backend_x11
2020-04-12 07:13:28 +00:00
- renderer_gl
- wayland_frontend
- xwayland
- default
2021-07-30 16:08:42 +00:00
- test_all_features
2020-04-12 07:13:28 +00:00
2021-07-25 06:45:55 +00:00
env:
RUSTFLAGS: "-D warnings"
2020-04-12 07:13:28 +00:00
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Cargo cache
2021-07-30 16:08:42 +00:00
uses: actions/cache@v2
2020-04-12 07:13:28 +00:00
with:
2021-07-30 16:08:42 +00:00
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }}
2020-04-12 07:13:28 +00:00
- name: Rust toolchain
uses: actions-rs/toolchain@v1
with:
2021-07-30 16:08:42 +00:00
toolchain: stable
2020-04-12 07:13:28 +00:00
override: true
2021-07-30 16:08:42 +00:00
default: true
profile: minimal
2020-04-12 07:13:28 +00:00
- name: System dependencies
2020-05-13 16:38:02 +00:00
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
2020-04-12 07:13:28 +00:00
2021-07-30 16:08:42 +00:00
- name: Build cache
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-build-rust_stable-smithay-feature_${{ matrix.features }}-${{ hashFiles('**/Cargo.toml') }}
2021-06-30 11:17:20 +00:00
- name: Build and install Libseat
if: matrix.features == 'backend_session_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
2020-04-12 07:13:28 +00:00
- name: Test features
uses: actions-rs/cargo@v1
2021-07-30 16:08:42 +00:00
env:
RUST_BACKTRACE: full
2020-04-12 07:13:28 +00:00
with:
command: test
args: --no-default-features --features "${{ matrix.features }}"
2020-04-12 07:13:28 +00:00
2021-07-30 16:08:42 +00:00
anvil-tests:
needs:
- format
- clippy-check
- smithay-tests
2020-04-12 07:13:28 +00:00
strategy:
fail-fast: false
matrix:
features:
- ''
- egl
- winit
- udev
- logind
2021-10-17 18:46:00 +00:00
- x11
2020-04-12 07:13:28 +00:00
- default
2021-07-30 16:08:42 +00:00
- test_all_features
2020-04-12 07:13:28 +00:00
2021-07-25 08:08:40 +00:00
env:
RUSTFLAGS: "-D warnings"
2020-04-12 07:13:28 +00:00
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Cargo cache
2021-07-30 16:08:42 +00:00
uses: actions/cache@v2
2020-04-12 07:13:28 +00:00
with:
2021-07-30 16:08:42 +00:00
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }}
2020-04-12 07:13:28 +00:00
- name: Rust toolchain
uses: actions-rs/toolchain@v1
with:
2021-07-30 16:08:42 +00:00
toolchain: stable
2020-04-12 07:13:28 +00:00
override: true
2021-07-30 16:08:42 +00:00
default: true
profile: minimal
2020-04-12 07:13:28 +00:00
- name: System dependencies
2020-05-13 16:38:02 +00:00
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
2020-04-12 07:13:28 +00:00
2021-07-30 16:08:42 +00:00
- name: Build cache
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-build-rust_stable-anvil-feature_${{ matrix.features }}-${{ hashFiles('**/Cargo.toml') }}
2020-04-12 07:13:28 +00:00
- name: Test features
2021-07-30 16:08:42 +00:00
uses: actions-rs/cargo@v1
env:
RUST_BACKTRACE: full
with:
command: test
args: --manifest-path "./anvil/Cargo.toml" --no-default-features --features "${{ matrix.features }}"
2020-04-12 07:13:28 +00:00
2021-07-30 16:08:42 +00:00
anvil-wlcs:
needs:
- format
- clippy-check
- smithay-tests
- anvil-tests
2021-07-31 16:56:18 +00:00
strategy:
fail-fast: false
matrix:
include:
- job_name: "Core tests"
gtest_filter: "SelfTest*:FrameSubmission*"
- job_name: "Output tests"
gtest_filter: "XdgOutputV1Test*"
- job_name: "Pointer input tests"
gtest_filter: "*/SurfacePointerMotionTest*"
name: "WLCS: ${{ matrix.job_name }}"
2021-07-30 16:08:42 +00:00
env:
RUSTFLAGS: "-D warnings"
2020-04-12 07:13:28 +00:00
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
2021-07-30 16:08:42 +00:00
- name: Cargo cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-rust_stable-${{ hashFiles('**/Cargo.toml') }}
2020-04-12 07:13:28 +00:00
- name: Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
2021-07-30 16:08:42 +00:00
default: true
profile: minimal
2020-04-12 07:13:28 +00:00
- name: System dependencies
2021-07-31 16:56:18 +00:00
run: sudo apt-get update; sudo apt-get install cmake libgtest-dev google-mock libboost-dev libxkbcommon-dev libwayland-dev
2020-04-12 07:13:28 +00:00
2021-07-30 16:08:42 +00:00
- name: Build cache
uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-build-rust_stable-wlcs-${{ hashFiles('**/Cargo.toml') }}
2020-04-12 07:13:28 +00:00
2021-07-31 16:56:18 +00:00
- name: WLCS build cache
uses: actions/cache@v2
with:
path: wlcs
key: ${{ runner.os }}-build-wlcs-${{ hashFiles('./compile_wlcs.sh') }}
- name: Build WLCS
run: ./compile_wlcs.sh
- name: Build anvil WLCS plugin
2021-07-30 16:08:42 +00:00
uses: actions-rs/cargo@v1
env:
RUST_BACKTRACE: full
with:
command: build
args: --manifest-path "./wlcs_anvil/Cargo.toml"
2021-07-31 16:56:18 +00:00
- name: Run test suite
run: ./wlcs/wlcs ./target/debug/libwlcs_anvil.so --gtest_filter="${{ matrix.gtest_filter }}"