81 lines
2.7 KiB
YAML
81 lines
2.7 KiB
YAML
name: Full native tests
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- "**/*.rs"
|
|
- "**/Cargo.toml"
|
|
- "Cargo.lock"
|
|
- "rust-toolchain.toml"
|
|
- ".github/workflows/linux-lua.yml"
|
|
pull_request:
|
|
paths:
|
|
- "**/*.rs"
|
|
- "**/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 gpui_shell::workspace::window_titlebar::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 the release workspace
|
|
if: ${{ !cancelled() }}
|
|
run: cargo check --locked --workspace --release
|