Skip to content

refactor(editor): rebuild diff viewer around code editor kernels #242

refactor(editor): rebuild diff viewer around code editor kernels

refactor(editor): rebuild diff viewer around code editor kernels #242

Workflow file for this run

name: Editor
on:
push:
branches: [main]
paths:
- "editor/**"
- "moon.work"
- ".gitmodules"
- "justfile"
- ".github/workflows/editor.yml"
pull_request:
paths:
- "editor/**"
- "moon.work"
- ".gitmodules"
- "justfile"
- ".github/workflows/editor.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
# Root CI checks the integrated native/JS workspace on Linux. This job keeps
# the editor's own all-target and cross-platform contract, using its scoped
# editor/moon.work so Proton setup is not part of an editor-only gate.
moon-gates:
name: moon (${{ matrix.channel }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.channel == 'nightly' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
channel: [stable, nightly]
permissions:
contents: read
defaults:
run:
working-directory: editor
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install MoonBit (${{ matrix.channel }})
run: |
if [ "${{ matrix.channel }}" = "nightly" ]; then
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s nightly
else
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
fi
echo "$HOME/.moon/bin" >> $GITHUB_PATH
- name: Update dependencies
run: |
moon version --all
moon update
- name: Check
run: |
if [ "${{ matrix.channel }}" = "stable" ]; then
moon check --target all --warn-list +73 --deny-warn
else
moon check --target all --warn-list +73
fi
moon fmt --check
- name: Test
run: moon test --target all
# Browser correctness owns the editor asset pipeline and Playwright suites.
# It stays on macOS because the maintained geometry expectations use macOS
# font defaults; the performance profile remains an opt-in local diagnostic.
browser-correctness:
runs-on: macos-latest
timeout-minutes: 30
permissions:
contents: read
defaults:
run:
working-directory: editor
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install MoonBit (stable)
run: |
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
echo "$HOME/.moon/bin" >> $GITHUB_PATH
- name: Update dependencies
run: |
moon version --all
moon update
- name: Install just
run: brew install just
- name: Install Playwright
run: |
npm ci
npx playwright install --with-deps chromium
- name: Browser smoke suite
run: just test-browser-smoke