Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/ci-distro-compat-cua-driver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ name: "CI: cua-driver distro-compat matrix"
# built one. This is the only way to catch ABI mismatches because the NixOS
# CI builds its own binary against NixOS's own glibc.
# - Keep this fast and cheap: containers + --version/doctor only. Full GUI
# integration tests stay in nix-build.yml.
# behavior stays in the canonical Rust X11 and Wayland E2E workflows.
# - Non-blocking by default (continue-on-error: true) — the released binary
# may not exist yet on a fresh branch; the job is informational until the
# first linux release tag exists.
Expand All @@ -27,7 +27,8 @@ name: "CI: cua-driver distro-compat matrix"
# Also runs on push to main and on workflow_dispatch so it works as a
# post-release regression guard.
#
# Companion to nix-build.yml — does NOT replace it. See CUA-599.
# Companion to the Rust desktop E2E workflows; it validates released binaries,
# not source-built harness behavior.

on:
pull_request:
Expand Down
31 changes: 21 additions & 10 deletions .github/workflows/ci-nix-linux.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
name: "CI: Nix Linux Rust source"

# This is the automatic Nix lane. Desktop-heavy legacy checks live in
# nix-build.yml and nix-wayland.yml and are maintainer-dispatched instead.
# Nix owns reproducible Linux package and Rust-source builds. Interactive
# desktop behavior is owned by the Rust E2E workflows.
on:
pull_request:
paths:
- "flake.nix"
- "flake.lock"
- "nix/cua-driver/package.nix"
- "nix/cua-driver/tests/rust-unit.nix"
- "nix/cua-driver/**"
- "libs/cua-driver/rust/**"
- ".github/workflows/ci-nix-linux.yml"
push:
branches: [main]
paths:
- "flake.nix"
- "flake.lock"
- "nix/cua-driver/package.nix"
- "nix/cua-driver/tests/rust-unit.nix"
- "nix/cua-driver/**"
- "libs/cua-driver/rust/**"
- ".github/workflows/ci-nix-linux.yml"
workflow_dispatch:
Expand All @@ -31,15 +29,28 @@ concurrency:

jobs:
rust-source:
name: Nix Linux Rust source check
name: Nix / ${{ matrix.name }}
runs-on: ubuntu-latest
timeout-minutes: 45
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
- name: compositor build
attribute: cua-compositor-build
- name: driver package
attribute: cua-driver-build
- name: Rust unit tests
attribute: cua-driver-linux-rust-unit
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Install Nix
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
extra_nix_config: |
experimental-features = nix-command flakes
- name: Run source-built Rust check
run: nix build .#checks.x86_64-linux.cua-driver-linux-rust-unit --print-build-logs --show-trace
- name: Build ${{ matrix.name }}
run: >-
nix build
.#checks.x86_64-linux.${{ matrix.attribute }}
--no-link --print-build-logs --show-trace
16 changes: 15 additions & 1 deletion .github/workflows/e2e-rust-linux-wayland.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
default: sway
options:
- sway
- cua-compositor
lane:
description: "Diagnostic lane; canonical dispatches use all"
required: false
Expand Down Expand Up @@ -80,6 +81,7 @@ jobs:
ref: ${{ needs.source.outputs.sha }}
- uses: dtolnay/rust-toolchain@stable
- name: Install Sway and Rust build dependencies
if: inputs.environment == 'sway'
shell: bash
run: |
sudo apt-get update
Expand All @@ -91,11 +93,23 @@ jobs:
libxext-dev libdrm-dev libgbm-dev libwebkit2gtk-4.1-dev \
libssl-dev libxdo-dev libayatana-appindicator3-dev librsvg2-dev \
ffmpeg jq
- name: Install Nix for the custom compositor environment
if: inputs.environment == 'cua-compositor'
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
extra_nix_config: |
experimental-features = nix-command flakes
- name: Run complete native Wayland matrix
shell: bash
env:
CUA_AT_SPI_BUS_LAUNCHER: /usr/libexec/at-spi-bus-launcher
run: scripts/ci/linux/run-rust-e2e-wayland.sh
run: |
if [[ "${{ inputs.environment }}" == "cua-compositor" ]]; then
nix develop .#cua-driver-inject-e2e \
-c scripts/ci/linux/run-rust-e2e-inject.sh
else
scripts/ci/linux/run-rust-e2e-wayland.sh
fi
- name: Upload Wayland results
if: always()
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4
Expand Down
Loading
Loading