Skip to content

feat(dsh): add shared Harness analysis #335

feat(dsh): add shared Harness analysis

feat(dsh): add shared Harness analysis #335

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: ${{ matrix.os }} / Node ${{ matrix.node }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
node: 22.20.0
- os: macos-latest
node: 22.20.0
- os: windows-latest
node: 22.20.0
- os: ubuntu-latest
node: 24.x
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node }}
cache: npm
- run: npm ci
- name: Run native DSH Skill discovery smoke
run: npm run test:dsh-native
- name: Run native DSH configured-assets smoke
run: npm run test:dsh-configured-assets-native
- name: Run Vitest
run: npm run test:ci
- name: Verify Harness DSL generated sources
run: npm run harness:generated
- name: Build Harness DSL package
run: npm run harness:build
- name: Test Harness DSL package
run: npm run harness:test
- name: Build Harness UI package
run: npm run harness-ui:build
- name: Test Harness UI package
run: npm run harness-ui:test
- name: Build Harness Studio package
run: npm run harness-studio:build
- name: Test Harness Studio package
run: npm run harness-studio:test
- name: Install Chromium for Harness Studio browser test
if: ${{ matrix.os == 'ubuntu-latest' && matrix.node == '22.20.0' }}
run: npx playwright install --with-deps chromium
- name: Test Harness Studio browser interaction
if: ${{ matrix.os == 'ubuntu-latest' && matrix.node == '22.20.0' }}
run: npm run harness-studio:test:browser
- name: Upload JUnit test results
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: test-results-${{ matrix.os }}-node-${{ matrix.node }}
path: test-results/vitest.junit.xml
if-no-files-found: error
- run: npm run pack:verify