Files
pebrel/.github/workflows/linux-lua.yml
T
kuddev 78927d3325 refactor(macos): keep native window chrome behind the platform boundary
Preserve native geometry coverage and publish lifecycle fixture PID files
atomically so the newly enabled native CI cannot read an empty PID.
2026-09-13 20:33:42 +08:00

89 lines
3.0 KiB
YAML

name: Full native tests
on:
workflow_dispatch:
push:
paths:
- "**/*.rs"
- "scripts/**/*.py"
- "**/Cargo.toml"
- "Cargo.lock"
- "rust-toolchain.toml"
- ".github/workflows/linux-lua.yml"
pull_request:
paths:
- "**/*.rs"
- "scripts/**/*.py"
- "**/Cargo.toml"
- "Cargo.lock"
- "rust-toolchain.toml"
- ".github/workflows/linux-lua.yml"
permissions:
contents: read
jobs:
native-tests:
name: Tests (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2022, macos-26, macos-26-intel]
runs-on: ${{ matrix.os }}
timeout-minutes: 120
env:
PYTHONUTF8: "1"
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install native dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential cmake pkg-config zsh libasound2-dev libdbus-1-dev libudev-dev \
libfontconfig1-dev libfreetype6-dev \
libegl1-mesa-dev libgl1-mesa-dev \
libwayland-dev libxkbcommon-dev libxkbcommon-x11-dev \
libx11-xcb-dev libxcb1-dev libxcb-render0-dev \
libxcb-shape0-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-xkb-dev libxi-dev
- name: Require the AppKit SDK used by this PR
if: runner.os == 'macOS'
run: |
sdk_version="$(xcrun --sdk macosx --show-sdk-version)"
test "${sdk_version%%.*}" -ge 26
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.97.1"
- uses: Swatinem/rust-cache@v2
- name: Test native titlebar alignment
if: runner.os == 'macOS'
run: >-
cargo test --locked -p nebula --bin pebrel --features gpui-test-support platform::window_chrome::macos::tests::
- name: Test all Python helpers
if: ${{ !cancelled() }}
run: python -m unittest discover -s scripts/tests -v
- name: Test all conformance harness helpers
if: ${{ !cancelled() }}
run: python -m unittest discover -s scripts/conformance/tests -v
- name: Test the full Rust workspace
if: ${{ !cancelled() }}
run: cargo test --locked --workspace
- name: Test all GPUI product and interaction cases
if: ${{ !cancelled() }}
run: cargo test --locked -p nebula --bin pebrel --features gpui-test-support
- name: Check source architecture
if: ${{ !cancelled() && runner.os == 'Linux' }}
run: python scripts/check_architecture.py
- name: Test translation and allocation contracts
if: ${{ !cancelled() && runner.os == 'Linux' }}
run: cargo test --locked --manifest-path tools/i18n-contract/Cargo.toml
- name: Check the release workspace
if: ${{ !cancelled() }}
run: cargo check --locked --workspace --release