name: Test Wasm on: push: branches: ["main"] paths-ignore: - "**.md" - "book/**" - "docs/**" - "tooling-projects/**" pull_request: branches: ["main"] types: [opened, synchronize] paths-ignore: - "**.md" - "book/**" - "docs/**" - "tooling-projects/**" concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} env: CARGO_TERM_COLOR: always REVIVE_WASM_INSTALL_DIR: ${{ github.workspace }}/target/wasm32-unknown-emscripten/release jobs: build: uses: ./.github/workflows/reusable-build-wasm.yml with: is_release: false retention_days: 1 test: needs: build strategy: matrix: os: ["ubuntu-24.04", "macos-15", "windows-2022"] runs-on: ${{ matrix.os }} steps: - name: Checkout revive uses: actions/checkout@v6 - name: Download Artifacts uses: actions/download-artifact@v7 with: pattern: resolc*.{js,wasm} merge-multiple: true path: ${{ env.REVIVE_WASM_INSTALL_DIR }} - name: Set Up Node.js uses: actions/setup-node@v6 with: node-version: "24" - name: Install Node Packages run: npm install - name: Test emscripten run: | echo "Running tests for ${{ matrix.os }}" npm run test:wasm - name: Test @parity/resolc run: | echo "Running tests for ${{ matrix.os }}" npm run -w js/resolc test - name: Run Playwright Tests run: | cd js/emscripten npx playwright install --with-deps npx playwright test - name: Upload Playwright Debug Artifacts if: always() uses: actions/upload-artifact@v6 with: name: playwright-debug-${{ matrix.os }} path: | js/emscripten/test-results.json js/emscripten/test-results/ retention-days: 2