diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7435ab25..113e2ecd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,12 +73,12 @@ jobs: - name: Lint API run: yarn lint-api - unit-tests-fast: + unit-tests*: timeout-minutes: 20 strategy: matrix: node-version: [18] - runs-on: [ubuntu, macos] + runs-on: [ubuntu, macos, windows] runs-on: ${{ matrix.runs-on }}-latest steps: - uses: actions/checkout@v3 @@ -143,7 +143,7 @@ jobs: - name: Unit tests run: yarn test-unit --forbid-only - integration-tests: + integration-tests*: timeout-minutes: 20 strategy: matrix: @@ -182,3 +182,39 @@ jobs: run: ls -R - name: Integration tests (${{ matrix.browser }}) run: yarn test-api-${{ matrix.browser }} --headless --forbid-only + + integration-tests: + needs: build + timeout-minutes: 20 + strategy: + matrix: + node-version: [18] # just one as integration tests are about testing in browser + runs-on: [windows] # macos is flaky + browser: [chromium, firefox] + runs-on: ${{ matrix.runs-on }}-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }}.x + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }}.x + cache: 'yarn' + - name: Install dependencies + run: | + yarn --frozen-lockfile + yarn install-addons + - name: Install playwright + run: npx playwright install + - uses: actions/download-artifact@v3 + with: + name: build-artifacts + - name: Unzip artifacts (Linux, macOS) + if: runner.os != 'Windows' + run: unzip -o compressed-build.zip + - name: Unzip artifacts (Windows) + if: runner.os == 'Windows' + run: 7z x compressed-build.zip -aoa -o${{ github.workspace }} + - name: Print directory structure + run: ls -R + - name: Integration tests (${{ matrix.browser }}) + run: yarn test-api-${{ matrix.browser }} --headless --forbid-only