Create-listing modal: supporting cards row (CS-12116) #5923
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: CI Software Factory | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - ci-bisect | |
| - ci-bisect-** | |
| pull_request: | |
| paths: | |
| - ".github/workflows/ci-software-factory.yaml" | |
| - "packages/runtime-common/**" | |
| - "packages/base/**" | |
| - "packages/boxel-icons/**" | |
| - "packages/host/**" | |
| - "packages/matrix/support/**" | |
| - "packages/postgres/**" | |
| - "packages/realm-server/**" | |
| - "packages/realm-test-harness/**" | |
| - "packages/software-factory/**" | |
| - "package.json" | |
| - "pnpm-lock.yaml" | |
| # CI boot path: see comment on the equivalent block in ci.yaml. | |
| - ".mise.toml" | |
| - ".github/actions/**" | |
| - "mise-tasks/**" | |
| - "packages/observability/scripts/**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-software-factory-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| checks: write | |
| contents: read | |
| id-token: write | |
| pull-requests: write | |
| jobs: | |
| test-web-assets: | |
| name: Build test web assets | |
| uses: ./.github/workflows/test-web-assets.yaml | |
| with: | |
| caller: ci-software-factory | |
| software-factory-test: | |
| name: Software Factory Tests (shard ${{ matrix.shard.index }}/${{ matrix.shard.total }}) | |
| needs: test-web-assets | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard: | |
| - index: 1 | |
| total: 3 | |
| - index: 2 | |
| total: 3 | |
| - index: 3 | |
| total: 3 | |
| concurrency: | |
| group: ci-software-factory-shard-${{ matrix.shard.index }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: ./.github/actions/init | |
| - name: Download test web assets | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: ${{ needs.test-web-assets.outputs.artifact_name }} | |
| path: .test-web-assets-artifact | |
| - name: Restore test web assets into workspace | |
| shell: bash | |
| run: | | |
| shopt -s dotglob | |
| cp -a .test-web-assets-artifact/. ./ | |
| - name: Install Playwright Browsers | |
| # --with-deps also apt-installs the system libraries Playwright needs; | |
| # without it CI fails with "Host system is missing dependencies to run | |
| # browsers". | |
| run: pnpm exec playwright install --with-deps | |
| working-directory: packages/software-factory | |
| - name: Run Node tests | |
| if: ${{ matrix.shard.index == 1 }} | |
| run: pnpm test:node | |
| working-directory: packages/software-factory | |
| - name: Serve boxel-icons | |
| run: | | |
| # SF Playwright tests use the realm-test-harness, which spins up | |
| # vite / realm-server on its own dynamic ports — it is hermetic | |
| # by design (see packages/software-factory/docs/testing-strategy.md). | |
| # The only external service it expects is the icons server on | |
| # ICONS_URL (defaults to http://localhost:4206/). Do not start | |
| # host-dist on port 4200 here — it collides with the harness | |
| # and masks regressions in the harness's host bring-up code. | |
| mise run services:icons & | |
| timeout 60 bash -c 'until curl -sf http://localhost:4206 > /dev/null; do sleep 1; done' | |
| - name: Run Playwright tests | |
| run: pnpm test:playwright:shard ${{ matrix.shard.index }}/${{ matrix.shard.total }} | |
| working-directory: packages/software-factory | |
| - name: Upload Playwright traces | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: software-factory-playwright-traces-shard-${{ matrix.shard.index }} | |
| path: packages/software-factory/test-results/**/trace.zip | |
| retention-days: 30 | |
| if-no-files-found: ignore |