ef499b6d47
## Summary - Re-enable one lint rule that was temporarily disabled during the ESLint-to-Oxlint migration: - **`twenty/sort-css-properties-alphabetically`** in twenty-front — 578 violations auto-fixed across 390 files - Document why **`typescript/consistent-type-imports`** cannot be auto-fixed in twenty-server: NestJS relies on `emitDecoratorMetadata` for DI, so converting constructor parameter imports to `import type` erases them at compile time and breaks dependency injection at runtime - Right-size CI runners, reducing 8-core usage from 18 jobs to 3: | Change | Jobs | Rationale | |--------|------|-----------| | **Keep 8-core** | `ci-merge-queue/e2e-test`, `ci-front/front-sb-build`, `ci-front/front-build` | Heavy builds needing max CPU + memory (10GB NODE_OPTIONS, full Storybook webpack bundling) | | **8-core → 4-core** | `ci-server` (build, lint-typecheck, validation, test, integration-test), `ci-front/front-sb-test`, `ci-zapier/server-setup`, `ci-sdk/sdk-e2e-test` | Already sharded into 10-12 parallel instances, I/O-bound (DB/Redis), or moderate single builds | | **8-core → 2-core** | `ci-emails/emails-test` | Trivially lightweight (build + curl health check) | | **Removed** | `ci-front/front-chromatic-deployment` | Dead code — permanently disabled with `if: false` | - Fix merge queue CI issues: - **Concurrency**: Use `merge_group.base_ref` instead of unique merge group ref so new queue entries cancel previous runs - **Required status checks**: Add `merge_group` trigger to all 6 required CI workflows (front, server, shared, website, docker-compose, sdk) with `changed-files-check` auto-skipped for merge_group events — status check jobs auto-pass without re-running full CI - **Build caching**: Add Nx build cache restore/save to E2E test job with fallback to `main` branch cache for faster frontend and server builds ## Test plan - [ ] CI passes on this PR (verifies lint rule auto-fix works) - [ ] Verify 4-core runner jobs complete within their 30-minute timeouts - [ ] Verify merge queue status checks auto-pass (ci-front-status-check, ci-server-status-check, etc.) - [ ] Verify merge queue E2E concurrency cancels previous runs when a new PR enters the queue
36 lines
1.0 KiB
YAML
36 lines
1.0 KiB
YAML
name: Nx Affected CI
|
|
inputs:
|
|
parallel:
|
|
required: false
|
|
default: '3'
|
|
tag:
|
|
required: false
|
|
tasks:
|
|
required: true
|
|
configuration:
|
|
required: false
|
|
default: 'ci'
|
|
args:
|
|
required: false
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Fetch main branch for diff
|
|
shell: bash
|
|
run: git fetch origin main --depth=1
|
|
- name: Get last successful commit
|
|
if: env.NX_BASE == ''
|
|
uses: nrwl/nx-set-shas@v4
|
|
- name: Fallback to origin/main if no base found
|
|
if: env.NX_BASE == ''
|
|
shell: bash
|
|
run: echo "NX_BASE=$(git rev-parse origin/main)" >> $GITHUB_ENV
|
|
- name: Run affected command
|
|
shell: bash
|
|
env:
|
|
NX_CONFIGURATION: ${{ inputs.configuration }}
|
|
NX_TASKS: ${{ inputs.tasks }}
|
|
NX_PARALLEL: ${{ inputs.parallel }}
|
|
NX_TAG: ${{ inputs.tag }}
|
|
NX_ARGS: ${{ inputs.args }}
|
|
run: npx nx affected --nxBail --configuration="$NX_CONFIGURATION" -t="$NX_TASKS" --parallel="$NX_PARALLEL" --exclude="*,!tag:$NX_TAG" $NX_ARGS |