diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9204302..47d7667 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,8 +10,12 @@ on: jobs: Build: runs-on: ubuntu-latest + env: + WDIO_ALLURE_REPORTER: true container: image: ghcr.io/${{ github.repository }}/ci-runner:node-22-trixie-slim + outputs: + e2e_tests_outcome: ${{ steps.execute_e2e_tests.outcome }} steps: - uses: actions/checkout@v5 with: @@ -27,8 +31,17 @@ jobs: - name: Test run: pnpm run test:unit - name: E2E tests + id: execute_e2e_tests run: pnpm install && xvfb-run pnpm run test + continue-on-error: true working-directory: e2e + - name: Upload Allure results + if: steps.execute_e2e_tests.outcome != 'skipped' + uses: actions/upload-artifact@v4 + with: + name: allure-results + path: e2e/out/allure-results/ + - name: Upload unit-test coverage data uses: actions/upload-artifact@v4 with: @@ -40,6 +53,41 @@ jobs: name: lcov-e2e.info path: e2e/out/coverage/lcov.info + - name: Failed E2E tests detected! + if: steps.execute_e2e_tests.outcome == 'failure' + run: exit 1 + + Publish-Allure-Report: + runs-on: ubuntu-latest + needs: Build + if: always() && needs.Build.outputs.e2e_tests_outcome != 'skipped' + steps: + - name: Download Allure results + uses: actions/download-artifact@v4 + with: + name: allure-results + path: e2e/out/allure-results/ + - name: Load test report history + uses: actions/checkout@v5 + continue-on-error: true + with: + ref: gh-pages + path: gh-pages + - name: Build test report + uses: simple-elf/allure-report-action@v1.13 + with: + allure_results: e2e/out/allure-results + subfolder: e2e-tests-reports + gh_pages: gh-pages + allure_report: allure-report + allure_history: allure-history + - name: Publish test report + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: allure-history + SonarScan: needs: Build runs-on: ubuntu-latest