|
45 | 45 | - name: Validate Dockerfile deps stage |
46 | 46 | run: node ./scripts/check-docker-deps-stage.mjs |
47 | 47 |
|
| 48 | + - name: Validate release package manifest |
| 49 | + run: node ./scripts/release-package-map.mjs check |
| 50 | + |
| 51 | + - name: Verify release package bootstrap for changed manifests |
| 52 | + run: | |
| 53 | + mapfile -t changed_paths < <(git diff --name-only "${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }}") |
| 54 | + PAPERCLIP_RELEASE_BOOTSTRAP_BASE_SHA="${{ github.event.pull_request.base.sha }}" \ |
| 55 | + node ./scripts/check-release-package-bootstrap.mjs "${changed_paths[@]}" |
| 56 | +
|
48 | 57 | - name: Validate dependency resolution when manifests change |
49 | 58 | run: | |
50 | 59 | changed="$(git diff --name-only "${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }}")" |
@@ -76,19 +85,88 @@ jobs: |
76 | 85 | - name: Install dependencies |
77 | 86 | run: pnpm install --frozen-lockfile |
78 | 87 |
|
79 | | - - name: Typecheck |
80 | | - run: pnpm -r typecheck |
| 88 | + - name: Typecheck workspaces whose build scripts skip TypeScript |
| 89 | + run: pnpm run typecheck:build-gaps |
81 | 90 |
|
82 | | - - name: Run tests |
83 | | - run: pnpm test:run |
| 91 | + - name: Run general test suites |
| 92 | + run: pnpm test:run:general |
84 | 93 |
|
85 | 94 | - name: Verify release registry test coverage |
86 | 95 | run: pnpm run test:release-registry |
87 | 96 |
|
88 | 97 | - name: Build |
89 | 98 | run: pnpm build |
90 | 99 |
|
91 | | - - name: Release canary dry run |
| 100 | + verify_serialized_server: |
| 101 | + name: Verify serialized server suites (${{ matrix.shard_label }}) |
| 102 | + needs: [policy] |
| 103 | + runs-on: ubuntu-latest |
| 104 | + timeout-minutes: 20 |
| 105 | + strategy: |
| 106 | + fail-fast: false |
| 107 | + matrix: |
| 108 | + include: |
| 109 | + - shard_index: 0 |
| 110 | + shard_count: 4 |
| 111 | + shard_label: 1/4 |
| 112 | + - shard_index: 1 |
| 113 | + shard_count: 4 |
| 114 | + shard_label: 2/4 |
| 115 | + - shard_index: 2 |
| 116 | + shard_count: 4 |
| 117 | + shard_label: 3/4 |
| 118 | + - shard_index: 3 |
| 119 | + shard_count: 4 |
| 120 | + shard_label: 4/4 |
| 121 | + |
| 122 | + steps: |
| 123 | + - name: Checkout repository |
| 124 | + uses: actions/checkout@v4 |
| 125 | + |
| 126 | + - name: Setup pnpm |
| 127 | + uses: pnpm/action-setup@v4 |
| 128 | + with: |
| 129 | + version: 9.15.4 |
| 130 | + |
| 131 | + - name: Setup Node.js |
| 132 | + uses: actions/setup-node@v4 |
| 133 | + with: |
| 134 | + node-version: 24 |
| 135 | + cache: pnpm |
| 136 | + |
| 137 | + - name: Install dependencies |
| 138 | + run: pnpm install --frozen-lockfile |
| 139 | + |
| 140 | + - name: Run serialized server test shard |
| 141 | + run: pnpm test:run:serialized -- --shard-index ${{ matrix.shard_index }} --shard-count ${{ matrix.shard_count }} |
| 142 | + |
| 143 | + canary_dry_run: |
| 144 | + name: Canary Dry Run |
| 145 | + needs: [policy] |
| 146 | + runs-on: ubuntu-latest |
| 147 | + timeout-minutes: 20 |
| 148 | + |
| 149 | + steps: |
| 150 | + - name: Checkout repository |
| 151 | + uses: actions/checkout@v4 |
| 152 | + |
| 153 | + - name: Setup pnpm |
| 154 | + uses: pnpm/action-setup@v4 |
| 155 | + with: |
| 156 | + version: 9.15.4 |
| 157 | + |
| 158 | + - name: Setup Node.js |
| 159 | + uses: actions/setup-node@v4 |
| 160 | + with: |
| 161 | + node-version: 24 |
| 162 | + cache: pnpm |
| 163 | + |
| 164 | + - name: Install dependencies |
| 165 | + run: pnpm install --frozen-lockfile |
| 166 | + |
| 167 | + # `release.sh` always executes its Step 2/7 workspace build, even when |
| 168 | + # `--skip-verify` bypasses the initial verification gate. |
| 169 | + - name: Release canary dry run via release.sh internal build |
92 | 170 | run: | |
93 | 171 | git checkout -B master HEAD |
94 | 172 | git checkout -- pnpm-lock.yaml |
@@ -117,9 +195,6 @@ jobs: |
117 | 195 | - name: Install dependencies |
118 | 196 | run: pnpm install --frozen-lockfile |
119 | 197 |
|
120 | | - - name: Build |
121 | | - run: pnpm build |
122 | | - |
123 | 198 | - name: Install Playwright |
124 | 199 | run: npx playwright install --with-deps chromium |
125 | 200 |
|
|
0 commit comments