refactor(editor): rebuild diff viewer around code editor kernels #242
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |