name: "tests service" on: workflow_dispatch: env: FORCE_COLOR: 1 ELECTRON_SKIP_BINARY_DOWNLOAD: 1 jobs: test: name: "Service" strategy: fail-fast: false matrix: service-os: [linux, windows] browser: [chromium, firefox, webkit] runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }}-* --workers=10 --retries=0 env: PWTEST_MODE: service2 PWTEST_TRACE: 1 PWTEST_BOT_NAME: "${{ matrix.browser }}-${{ matrix.service-os }}-service" PLAYWRIGHT_SERVICE_ACCESS_KEY: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_KEY }} PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }} PLAYWRIGHT_SERVICE_OS: ${{ matrix.service-os }} PLAYWRIGHT_SERVICE_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha }} - name: Upload blob report to GitHub if: ${{ !cancelled() }} uses: actions/upload-artifact@v3 with: name: all-blob-reports path: blob-report retention-days: 2 merge_reports: name: "Merge reports" needs: [test] if: ${{ !cancelled() }} runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - name: Download blob report artifact uses: actions/download-artifact@v3 with: name: all-blob-reports path: all-blob-reports - run: npx playwright merge-reports --reporter markdown,html ./all-blob-reports - name: Upload HTML report to Azure run: | REPORT_DIR='run-service-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha }}' azcopy cp --recursive "./playwright-report/*" "https://mspwblobreport.blob.core.windows.net/\$web/$REPORT_DIR" echo "Report url: https://mspwblobreport.z1.web.core.windows.net/$REPORT_DIR/index.html#?q=s:failed" env: AZCOPY_AUTO_LOGIN_TYPE: SPN AZCOPY_SPA_APPLICATION_ID: '${{ secrets.AZCOPY_SPA_APPLICATION_ID }}' AZCOPY_SPA_CLIENT_SECRET: '${{ secrets.AZCOPY_SPA_CLIENT_SECRET }}' AZCOPY_TENANT_ID: '${{ secrets.AZCOPY_TENANT_ID }}'