Skip to content

Jasmine update

Jasmine update #857

Workflow file for this run

name: CI Pipeline
permissions:
contents: read
on:
workflow_call:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- name: Cache node_modules and Playwright
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps
lint:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- name: Restore node_modules cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Run lint check
run: npx eslint ./src
typescript:
needs: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- name: Restore node_modules cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Run TypeScript check
run: npx tsc
- name: Run test TypeScript check
run: npx tsc --project tsconfig.test.json
package:
needs: typescript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- name: Restore node_modules cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Verify package contents
run: npm pack --dry-run
playwright:
needs: package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- name: Restore node_modules cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Run Playwright tests
run: make coverage-check
- name: Run Rust Wasm namespace parity check
run: make -C integrations/wasm/rust parity
- uses: actions/upload-artifact@v6
if: always()
with:
name: playwright-report
path: playwright-report/
if-no-files-found: ignore
retention-days: 3
kotlin:
needs: package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "17"
- name: Restore node_modules and Playwright cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Cache Gradle and Kotlin/JS
uses: actions/cache@v5
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
integrations/kotlin/.gradle
integrations/kotlin/kotlin-js-store
key: kotlin-${{ runner.os }}-${{ hashFiles('integrations/kotlin/**/*.gradle.kts', 'integrations/kotlin/gradle/wrapper/gradle-wrapper.properties', 'package-lock.json') }}
restore-keys: |
kotlin-${{ runner.os }}-
- name: Run Kotlin integration check
run: make -C integrations/kotlin check
- name: Run Rust Wasm namespace parity check
run: make -C integrations/wasm/rust parity
- uses: actions/upload-artifact@v6
if: always()
with:
name: kotlin-playwright-report
path: integrations/kotlin/playwright-report/
if-no-files-found: ignore
retention-days: 3
scala:
needs: package
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java-version: ["17", "21"]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: ${{ matrix.java-version }}
- uses: sbt/setup-sbt@v1
- name: Restore node_modules and Playwright cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Cache sbt and Scala artifacts
uses: actions/cache@v5
with:
path: |
~/.ivy2/cache
~/.sbt
~/.cache/coursier
integrations/scala/target
integrations/scala/project/target
integrations/scala/examples/basic_app/target
key: scala-${{ runner.os }}-jdk${{ matrix.java-version }}-${{ hashFiles('integrations/scala/build.sbt', 'integrations/scala/project/*.sbt', 'integrations/scala/project/build.properties', 'package-lock.json') }}
restore-keys: |
scala-${{ runner.os }}-jdk${{ matrix.java-version }}-
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Run Scala.js integration check
run: make -C integrations/scala check
- uses: actions/upload-artifact@v6
if: always()
with:
name: scala-playwright-report-jdk${{ matrix.java-version }}
path: integrations/scala/playwright-report/
if-no-files-found: ignore
retention-days: 3
csharp-wasm:
needs: package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
- name: Restore node_modules and Playwright cache
uses: actions/cache@v5
with:
path: |
node_modules
~/.cache/ms-playwright
key: deps-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
deps-${{ runner.os }}-
- name: Cache NuGet and .NET workloads
uses: actions/cache@v5
with:
path: |
~/.nuget/packages
~/.dotnet
key: csharp-wasm-${{ runner.os }}-${{ hashFiles('integrations/wasm/csharp/**/*.csproj', 'package-lock.json') }}
restore-keys: |
csharp-wasm-${{ runner.os }}-
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Install .NET WebAssembly workload
run: dotnet workload install wasm-tools
working-directory: integrations/wasm/csharp
- name: Run C# Wasm integration check
run: make -C integrations/wasm/csharp ci-check
- uses: actions/upload-artifact@v6
if: always()
with:
name: csharp-wasm-playwright-report
path: integrations/wasm/csharp/playwright-report/
if-no-files-found: ignore
retention-days: 3