Virtual network part 2 #6333
Workflow file for this run
This file contains 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 | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
permissions: | |
checks: write | |
contents: read | |
id-token: write | |
pull-requests: write | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
concurrency: | |
group: lint-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Lint AI Bot | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/ai-bot | |
- name: Lint Boxel Motion | |
# This addition to each step causes the job to proceed even if one lint job fails so we can see all errors | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/boxel-motion/addon | |
- name: Build Boxel Motion | |
# To faciliate linting of projects that depend on Boxel Motion | |
if: always() | |
run: pnpm run build | |
working-directory: packages/boxel-motion/addon | |
- name: Lint Boxel Motion Test App | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/boxel-motion/test-app | |
- name: Lint Boxel UI | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/boxel-ui/addon | |
- name: Build Boxel UI | |
# To faciliate linting of projects that depend on Boxel UI | |
if: always() | |
run: pnpm run build | |
working-directory: packages/boxel-ui/addon | |
- name: Lint Boxel UI Test App | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/boxel-ui/test-app | |
- name: Lint Boxel Motion | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/boxel-motion/addon | |
- name: Build Boxel Motion | |
# To faciliate linting of projects that depend on Boxel Motion | |
if: always() | |
run: pnpm run build | |
working-directory: packages/boxel-motion/addon | |
- name: Lint Boxel Motion Test App | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/boxel-motion/test-app | |
- name: Lint Host | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/host | |
- name: Lint Matrix | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/matrix | |
- name: Lint Realm Server | |
if: always() | |
run: pnpm run lint | |
working-directory: packages/realm-server | |
ai-bot-test: | |
name: AI bot Tests | |
runs-on: ubuntu-latest | |
concurrency: | |
group: ai-bot-test-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: AI Bot test suite | |
run: pnpm test | |
working-directory: packages/ai-bot | |
boxel-motion-test: | |
name: Boxel Motion Tests | |
runs-on: ubuntu-latest | |
concurrency: | |
group: boxel-motion-test-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Build boxel-motion | |
run: pnpm build | |
working-directory: packages/boxel-motion/addon | |
- name: Run test suite | |
run: pnpm test | |
working-directory: packages/boxel-motion/test-app | |
boxel-ui-test: | |
name: Boxel UI Tests | |
runs-on: ubuntu-latest | |
concurrency: | |
group: boxel-ui-test-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Build boxel-ui | |
run: pnpm build | |
working-directory: packages/boxel-ui/addon | |
- name: Run test suite | |
run: pnpm test | |
working-directory: packages/boxel-ui/test-app | |
host-test: | |
name: Host Tests | |
runs-on: ubuntu-latest | |
concurrency: | |
group: boxel-host-test-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Build boxel-ui | |
run: pnpm build | |
working-directory: packages/boxel-ui/addon | |
- name: Build host dist/ for fastboot | |
run: pnpm build | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
working-directory: packages/host | |
- name: Start realm servers | |
run: pnpm start:all & | |
working-directory: packages/realm-server | |
- name: create realm users | |
run: pnpm register-realm-users | |
working-directory: packages/matrix | |
- name: host test suite | |
run: pnpm test-with-percy | |
env: | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_HOST }} | |
working-directory: packages/host | |
- name: Publish test results | |
uses: EnricoMi/[email protected] | |
if: always() | |
with: | |
junit_files: junit/host.xml | |
matrix-client-test-1: | |
name: Matrix Client Tests - Group 1 | |
runs-on: ubuntu-latest | |
concurrency: | |
group: matrix-client-test-1-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Install Playwright Browsers | |
run: pnpm exec playwright install --with-deps | |
working-directory: packages/matrix | |
- name: Build boxel-ui | |
run: pnpm build | |
working-directory: packages/boxel-ui/addon | |
- name: Build boxel-motion | |
run: pnpm build | |
working-directory: packages/boxel-motion/addon | |
- name: Build host dist/ for fastboot | |
run: pnpm build | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
working-directory: packages/host | |
- name: Start realm servers | |
run: pnpm start:without-matrix & | |
working-directory: packages/realm-server | |
- name: Run Playwright tests | |
run: pnpm test:group group1 | |
working-directory: packages/matrix | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: playwright-report | |
path: packages/matrix/playwright-report/ | |
retention-days: 30 | |
matrix-client-test-2: | |
name: Matrix Client Tests - Group 2 | |
runs-on: ubuntu-latest | |
concurrency: | |
group: matrix-client-test-2-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Install Playwright Browsers | |
run: pnpm exec playwright install --with-deps | |
working-directory: packages/matrix | |
- name: Build boxel-ui | |
run: pnpm build | |
working-directory: packages/boxel-ui/addon | |
- name: Build boxel-motion | |
run: pnpm build | |
working-directory: packages/boxel-motion/addon | |
- name: Build host dist/ for fastboot | |
run: pnpm build | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
working-directory: packages/host | |
- name: Start realm servers | |
run: pnpm start:without-matrix & | |
working-directory: packages/realm-server | |
- name: Run Playwright tests | |
run: pnpm test:group group2 | |
working-directory: packages/matrix | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: playwright-report | |
path: packages/matrix/playwright-report/ | |
retention-days: 30 | |
realm-server-test: | |
name: Realm Server Tests | |
runs-on: ubuntu-latest | |
concurrency: | |
group: realm-server-test-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/init | |
- name: Build boxel-ui | |
run: pnpm build | |
working-directory: packages/boxel-ui/addon | |
- name: Build host dist/ for fastboot | |
run: pnpm build | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
working-directory: packages/host | |
- name: Start realm servers | |
run: pnpm start:all & | |
working-directory: packages/realm-server | |
- name: create realm users | |
run: pnpm register-realm-users | |
working-directory: packages/matrix | |
- name: realm server test suite | |
run: pnpm test:wait-for-servers | |
working-directory: packages/realm-server | |
- name: realm server DOM tests | |
run: pnpm test:dom | |
working-directory: packages/realm-server | |
change-check: | |
name: Check which packages changed | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
outputs: | |
boxel: ${{ steps.filter.outputs.boxel }} | |
ai-bot: ${{ steps.filter.outputs.ai-bot }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
boxel: | |
- '.github/workflows/build-host.yml' | |
- '.github/workflows/deploy-host.yml' | |
- '.github/workflows/manual-deploy.yml' | |
- '.github/workflows/ci.yaml' | |
- 'packages/base/**' | |
- 'packages/boxel-ui/**' | |
- 'packages/host/**' | |
- 'packages/realm-server/**' | |
- 'packages/runtime-common/**' | |
- 'pnpm-lock.yaml' | |
ai-bot: | |
- '.github/workflows/manual-ai-bot.yml' | |
- '.github/workflows/ci.yaml' | |
- 'packages/runtime-common/**' | |
- 'packages/ai-bot/**' | |
- 'pnpm-lock.yaml' | |
deploy: | |
name: Deploy boxel to staging | |
if: ${{ needs.change-check.outputs.boxel == 'true' }} | |
needs: | |
- change-check | |
- boxel-ui-test | |
- host-test | |
- realm-server-test | |
uses: ./.github/workflows/manual-deploy.yml | |
secrets: inherit | |
with: | |
environment: "staging" | |
deploy-ai-bot: | |
needs: | |
- ai-bot-test | |
- change-check | |
if: ${{ needs.change-check.outputs.ai-bot == 'true' }} | |
uses: ./.github/workflows/manual-ai-bot.yml | |
secrets: inherit | |
with: | |
environment: "staging" |