Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update(ci): publish playwright and allure report #712

Merged
merged 3 commits into from
Oct 14, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 83 additions & 16 deletions .github/workflows/automated-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
timeout-minutes: 60
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.47.2-jammy
image: mcr.microsoft.com/playwright:v1.48.0-jammy
strategy:
fail-fast: false
matrix:
Expand All @@ -36,6 +36,7 @@ jobs:
with:
repository: Satellite-im/automated-tests-web
path: automated-tests
ref: luis/playwright-report
stavares843 marked this conversation as resolved.
Show resolved Hide resolved

- name: Setup Node.js for Uplink Web πŸ”¨
uses: actions/[email protected]
Expand All @@ -57,16 +58,16 @@ jobs:
if: always()
with:
name: playwright-report-${{ matrix.project }}
path: automated-tests/playwright-report/
retention-days: 5
path: automated-tests/blob-report/
retention-days: 1

- name: Upload Allure results as artifact
if: always()
uses: actions/[email protected]
with:
name: allure-results-${{ matrix.project }}
path: automated-tests/allure-results
retention-days: 5
retention-days: 1

- name: Add label if any of build jobs failed
if: failure()
Expand All @@ -77,33 +78,94 @@ jobs:
Failed Automated Test
type: add

generate-report:
merge-reports:
if: always()
needs: playwright-run
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.48.0-jammy
steps:
- name: Download Blob Report from Desktop
uses: actions/download-artifact@v4
with:
name: playwright-report-desktop-chrome
path: blob-report

- name: Download Blob Report from Mobile
uses: actions/download-artifact@v4
with:
name: playwright-report-mobile-chrome
path: blob-report

- name: Merge Blob Reports into HTML Report
run: npx playwright merge-reports --reporter html ./blob-report

- name: Upload Merged Report
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-merged-report
path: playwright-report
retention-days: 5

- name: Delete temporary artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: |
playwright-report-desktop-chrome
playwright-report-mobile-chrome

publish-report:
if: always()
needs: merge-reports
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
contents: write
issues: read
steps:
- name: Download Merged Report
uses: actions/download-artifact@v4
with:
name: playwright-merged-report
path: playwright-report

- name: Set a timestamp one
id: timestampidone
run: echo "timestamp=$(date --utc +%Y%m%d_%H%M%SZ)" >> "$GITHUB_OUTPUT"

- name: Deploy Playwright HTML report to Github Pages
if: success()
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository: Satellite-im/test-reports
keep_files: true
publish_branch: gh-pages
publish_dir: ./playwright-report
destination_dir: ${{ steps.timestampidone.outputs.timestamp }}

- name: Stop ssh-agent job from first deploy required for deploying a second time
run: killall ssh-agent

- name: Download Allure results artifact for desktop
uses: actions/[email protected]
with:
name: allure-results-desktop-chrome
path: automated-tests/allure/desktop-chrome
path: allure/desktop-chrome

- name: Download Allure results artifact for mobile
uses: actions/[email protected]
with:
name: allure-results-mobile-chrome
path: automated-tests/allure/mobile-chrome
path: allure/mobile-chrome

- name: Merge Allure results
run: |
mkdir -p automated-tests/allure-results
cp -r automated-tests/allure/desktop-chrome/* automated-tests/allure-results/
cp -r automated-tests/allure/mobile-chrome/* automated-tests/allure-results/
mkdir -p allure-results
cp -r allure/desktop-chrome/* allure-results/
cp -r allure/mobile-chrome/* allure-results/

- name: Get Allure history
uses: actions/[email protected]
Expand All @@ -119,10 +181,16 @@ jobs:
uses: simple-elf/allure-report-action@master
with:
gh_pages: gh-pages
allure_results: automated-tests/allure-results
allure_results: allure-results
allure_report: allure-report
allure_history: allure-history
keep_reports: 100
github_repo: Satellite-im/test-reports
github_repo_owner: Satellite-im

- name: Set a timestamp two
id: timestampidtwo
run: echo "timestamp=$(date --utc +%Y%m%d_%H%M%SZ)" >> "$GITHUB_OUTPUT"

- name: Deploy report to Github Pages
if: success()
Expand All @@ -131,19 +199,19 @@ jobs:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository: Satellite-im/test-reports
publish_branch: gh-pages
publish_dir: allure-history
publish_dir: ./allure-history

- name: Comment PR with Allure test results
if: always() && github.event_name == 'pull_request'
uses: mshick/[email protected]
with:
message: |
Playwright test execution is complete! You can find the test results report [here](https://satellite-im.github.io/test-reports/${{ github.run_number }})
Automated tests execution is complete! You can find the Playwright test report [here](https://satellite-im.github.io/test-reports/${{ steps.timestampidone.outputs.timestamp }}/) and the Allure Test Report [here](https://satellite-im.github.io/test-reports/${{ github.run_number }})
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

remove-label:
needs: [playwright-run, generate-report]
needs: [playwright-run, merge-reports, publish-report]
runs-on: ubuntu-latest
permissions:
checks: write
Expand All @@ -159,8 +227,7 @@ jobs:
uses: geekyeggo/[email protected]
with:
name: |
playwright-report-desktop-chrome
playwright-report-mobile-chrome
playwright-merged-report
allure-results-desktop-chrome
allure-results-mobile-chrome

Expand Down
Loading