Skip to content

Merge pull request #1273 from InsightSoftwareConsortium/dependabot/np… #2279

Merge pull request #1273 from InsightSoftwareConsortium/dependabot/np…

Merge pull request #1273 from InsightSoftwareConsortium/dependabot/np… #2279

Workflow file for this run

name: Browser Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
defaults:
run:
shell: bash -leo pipefail {0} {0}
jobs:
test-cypress:
name: browser tests
runs-on: ubuntu-22.04
strategy:
max-parallel: 3
matrix:
package: [compress-stringify, compare-images, dicom, mesh-io, image-io, transform-io, downsample]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
large-packages: false
tool-cache: true
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install
uses: pnpm/action-setup@v4
with:
run_install: true
- name: Build itk-wasm
run: |
pnpm run --aggregate-output --filter itk-wasm build
- name: Build @itk-wasm/demo-app
run: |
pnpm run --aggregate-output --filter '@itk-wasm/demo-app' build
- name: Build build:gen:typescript
run: |
pnpm run --aggregate-output --filter "@itk-wasm/${{ matrix.package }}-build..." build:gen:typescript
- name: Build typescript
run: |
pnpm install
# Build the generated TypeScript package
pnpm run --aggregate-output --filter "@itk-wasm/${{ matrix.package }}..." build:tsc
pnpm run --aggregate-output --filter "@itk-wasm/${{ matrix.package }}" build
- name: Download test data
run: |
pnpm run --aggregate-output --filter "@itk-wasm/${{ matrix.package }}-build" test:data:download
- name: Test with Chrome
if: ${{ matrix.package != 'dicom' }}
uses: cypress-io/github-action@v6
with:
browser: chrome
working-directory: packages/${{ matrix.package }}/typescript
install: false
start: pnpm start
config: video=true
- uses: actions/upload-artifact@v4
if: always()
with:
name: cypress-videos-${{ matrix.package }}
path: packages/${{ matrix.package }}/typescript/cypress/videos
if-no-files-found: ignore
#- name: Test with Firefox
#if: ${{ matrix.package != 'compress-stringify' && matrix.package != 'dicom' && matrix.package != 'mesh-io' && matrix.package != 'image-io' && matrix.package != 'downsample' }}
#uses: cypress-io/github-action@v6
#with:
#browser: firefox
#working-directory: packages/${{ matrix.package }}/typescript
#install: false
#start: pnpm start
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots-${{ matrix.package }}
path: packages/${{ matrix.package }}/typescript/cypress/screenshots
if-no-files-found: ignore
test-itk-wasm-cypress:
name: itk-wasm browser tests
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
large-packages: false
tool-cache: true
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install
uses: pnpm/action-setup@v4
with:
run_install: true
- name: Build itk-wasm
run: |
pnpm run --aggregate-output --filter itk-wasm build
- name: Build @itk-wasm/demo-app
run: |
pnpm run --aggregate-output --filter '@itk-wasm/demo-app' build
- name: Build build:gen:typescript
run: |
pnpm run --aggregate-output build:gen:typescript
- name: Build itk-wasm
run: |
pnpm run --aggregate-output --filter itk-wasm build
# Test deps
pnpm run --aggregate-output --filter "@itk-wasm/demo-app" build
pnpm run --aggregate-output --filter "@itk-wasm/mesh-io" build
pnpm run --aggregate-output --filter "@itk-wasm/transform-io" build
pnpm run --aggregate-output --filter "@itk-wasm/image-io" build
- name: Test itk-wasm with Chrome
uses: cypress-io/github-action@v6
with:
browser: chrome
working-directory: packages/core/typescript/itk-wasm
install: false
start: pnpm start
config: video=true
wait-on: 'http://localhost:5180'
wait-on-timeout: 360
- uses: actions/upload-artifact@v4
if: always()
with:
name: cypress-videos
path: packages/core/typescript/itk-wasm/cypress/videos
if-no-files-found: ignore
#- name: Test with Firefox
#uses: cypress-io/github-action@v6
#with:
#browser: firefox
#working-directory: packages/core/typescript/itk-wasm
#install: false
#config: video=true
#start: pnpm start
#wait-on: 'http://localhost:5180'
#wait-on-timeout: 360
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: packages/core/typescript/itk-wasm/cypress/videos
if-no-files-found: ignore