Assign retained TP identity before layout and emit pure, runtime-free surface plans with exact character and text-property equivalence. Keep live publication unchanged for the staged cutover and add focused surface, package, docs, and CI contracts.\n\nVerified: make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs\nVerified: WERROR byte compilation for all 16 active Lisp files\nVerified: focused ebox-surface checkdoc has zero warnings
94 lines
2.8 KiB
YAML
94 lines
2.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Check out TP runtime dependency
|
|
run: git clone --depth 1 https://github.com/Kinneyzhang/tp.git ../tp
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y emacs-nox python3
|
|
|
|
- name: Run local verification suite
|
|
run: make ci EMACS=emacs PYTHON=python3
|
|
|
|
- name: Run package-lint
|
|
run: make package-lint-install EMACS=emacs
|
|
|
|
native-build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Rust verification toolchain
|
|
run: rustup toolchain install stable --profile minimal --component rustfmt,clippy
|
|
|
|
- name: Check native formatting
|
|
run: cargo +stable fmt --manifest-path native/Cargo.toml -- --check
|
|
|
|
- name: Lint native targets
|
|
run: cargo +stable clippy --locked --manifest-path native/Cargo.toml --all-targets -- -D warnings
|
|
|
|
- name: Test native runtime
|
|
run: cargo +stable test --locked --manifest-path native/Cargo.toml
|
|
|
|
- name: Build native module
|
|
run: cargo +stable build --locked --manifest-path native/Cargo.toml --release
|
|
|
|
- name: Verify platform module artifact
|
|
shell: bash
|
|
run: |
|
|
case "$RUNNER_OS" in
|
|
Linux) test -f native/target/release/libebox_native_reflow.so ;;
|
|
macOS) test -f native/target/release/libebox_native_reflow.dylib ;;
|
|
Windows) test -f native/target/release/ebox_native_reflow.dll ;;
|
|
*) exit 1 ;;
|
|
esac
|
|
|
|
native-msrv:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Rust minimum supported toolchain
|
|
run: rustup toolchain install 1.82.0 --profile minimal
|
|
|
|
- name: Test native runtime at MSRV
|
|
run: cargo +1.82.0 test --locked --manifest-path native/Cargo.toml
|
|
|
|
- name: Build native module at MSRV
|
|
run: cargo +1.82.0 build --locked --manifest-path native/Cargo.toml --release
|
|
|
|
- name: Verify MSRV platform module artifact
|
|
shell: bash
|
|
run: |
|
|
case "$RUNNER_OS" in
|
|
Linux) test -f native/target/release/libebox_native_reflow.so ;;
|
|
macOS) test -f native/target/release/libebox_native_reflow.dylib ;;
|
|
Windows) test -f native/target/release/ebox_native_reflow.dll ;;
|
|
*) exit 1 ;;
|
|
esac
|