Merge pull request #1925 from cardstack/cs-7657-skills-sent-via-senda… #3702
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 Host | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
checks: write | |
contents: read | |
id-token: write | |
pull-requests: write | |
jobs: | |
host-test: | |
name: Host Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
shardIndex: [1, 2, 3, 4, 5, 6] | |
shardTotal: [6] | |
concurrency: | |
group: boxel-host-test${{ github.head_ref || github.run_id }}-shard${{ matrix.shardIndex }} | |
cancel-in-progress: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/init | |
- name: Build boxel-icons | |
run: pnpm build | |
working-directory: packages/boxel-icons | |
- name: Serve boxel-icons | |
run: pnpm serve &> /tmp/icon-server.log & | |
working-directory: packages/boxel-icons | |
- name: Build boxel-ui | |
run: pnpm build | |
working-directory: packages/boxel-ui/addon | |
# this is to hopefully address the CI network flakiness that we | |
# occasionally see in host tests. | |
# https://github.com/actions/runner-images/issues/1187#issuecomment-686735760 | |
- name: Disable TCP/UDP network offloading | |
run: sudo ethtool -K eth0 tx off rx off | |
- name: Start host to serve assets for fastboot | |
run: pnpm start & | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
working-directory: packages/host | |
- name: Wait for ember-cli to be ready | |
run: pnpm npx wait-for-localhost 4200 | |
working-directory: packages/host | |
- name: Start realm servers | |
run: pnpm start:all &> /tmp/server.log & | |
working-directory: packages/realm-server | |
- name: create realm users | |
run: pnpm register-realm-users | |
working-directory: packages/matrix | |
- name: host test suite (shard ${{ matrix.shardIndex }}) | |
run: pnpm test-with-percy | |
env: | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_HOST }} | |
PERCY_PARALLEL_NONCE: ${{ github.run_id }}-${{ github.run_attempt }} | |
HOST_TEST_PARTITION: ${{ matrix.shardIndex }} | |
HOST_TEST_PARTITION_COUNT: ${{ matrix.shardTotal }} | |
working-directory: packages/host | |
- name: Upload junit report to GitHub Actions Artifacts | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: host-test-report-${{ matrix.shardIndex }} | |
path: junit/host-${{ matrix.shardIndex }}.xml | |
retention-days: 30 | |
- name: Upload realm server log | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: realm-server-log-${{ matrix.shardIndex }} | |
path: /tmp/server.log | |
retention-days: 30 | |
- name: Upload icon server log | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: icon-server-log-${{ matrix.shardIndex }} | |
path: /tmp/icon-server.log | |
retention-days: 30 | |
host-merge-reports-and-publish: | |
name: Merge Host reports and publish | |
if: always() | |
needs: host-test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/init | |
- name: Finalise Percy | |
run: npx percy build:finalize | |
working-directory: packages/host | |
env: | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_HOST }} | |
PERCY_PARALLEL_NONCE: ${{ github.run_id }}-${{ github.run_attempt }} | |
- name: Download JUnit reports from GitHub Actions Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: all-host-reports | |
pattern: host-test-report-* | |
merge-multiple: true | |
- run: ls | |
- run: ls all-host-reports | |
- name: Merge reports | |
run: npx junit-report-merger host.xml "./all-host-reports/*.xml" | |
- name: Upload merged report | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: host-test-report-merged | |
path: host.xml | |
retention-days: 30 | |
- name: Publish test results | |
uses: EnricoMi/publish-unit-test-result-action@v2.9.0 | |
if: always() | |
with: | |
junit_files: host.xml | |
check_name: Host Test Results |