Skip to content

fix(actions): github actions for test report publishig failing #2302

fix(actions): github actions for test report publishig failing

fix(actions): github actions for test report publishig failing #2302

Workflow file for this run

name: PR checks
on: [pull_request_target, pull_request]
permissions:
contents: write
jobs:
commits:
permissions:
pull-requests: read # to get list of commits from the PR
name: Canonical CLA signed and Signed-off-by (DCO)
runs-on: ubuntu-latest
steps:
- name: Check if CLA signed
uses: canonical/has-signed-canonical-cla@v1
- name: Get PR Commits
id: 'get-pr-commits'
uses: tim-actions/get-pr-commits@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check that all commits are signed-off
uses: tim-actions/dco@master
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
lint-scss:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: yarn install --immutable
- name: Lint scss
run: yarn lint-scss
lint-js:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install node dependencies
run: yarn install --immutable
- name: Lint JS
run: yarn lint-js
check-inclusive-naming:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check inclusive naming
uses: canonical-web-and-design/inclusive-naming@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
fail-on-error: true
e2e:
name: e2e-tests
runs-on: ubuntu-latest
outputs:
job_status: ${{job.status}}
steps:
- uses: actions/checkout@main
- name: Install Dotrun
run: |
sudo pip3 install dotrun
- name: Restore cached keys
uses: actions/cache/restore@v3
with:
path: keys
key: keys-folder
- name: Install LXD-UI dependencies
run: |
set -x
sudo chmod 0777 ../lxd-ui
dotrun install
- name: Run LXD-UI
env:
ENVIRONMENT: devel
PORT: 8407
LXD_UI_BACKEND_IP: 172.17.0.1
run: |
dotrun &
curl --head --fail --retry-delay 2 --retry 100 --retry-connrefused --insecure https://localhost:8407
- name: Set keys permissions
run: |
set -x
sudo chmod -R 0666 keys
sudo chmod 0777 keys
- name: Save keys
uses: actions/cache/save@v3
with:
path: keys
key: keys-folder
- name: Install LXD
uses: canonical/[email protected]
with:
channel: latest/edge
- name: Setup LXD
shell: bash
run: |
set -x
sudo lxc config set core.https_address "[::]:8443"
sudo lxc config trust add keys/lxd-ui.crt
sudo lxc config set cluster.https_address "127.0.0.1"
sudo lxc cluster enable local
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
js-tests:
name: js-tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- name: Install Dotrun
run: |
sudo pip3 install dotrun
- name: Install LXD-UI dependencies
run: |
set -x
sudo chmod 0777 ../lxd-ui
dotrun install
- name: Run Javascript tests
run: dotrun test-js
publish_report:
name: publish-e2e-report
# if job is cancelled we should skip this
if: success() || needs.e2e.outputs.job_status == 'failure'
needs: [e2e]
runs-on: ubuntu-latest
continue-on-error: true
env:
HTML_REPORT_URL_PATH: reports/pr-${{ github.event.number }}/${{ github.run_id }}/${{ github.run_attempt }}
PR_NUMBER: ${{ github.event.number }}
steps:
- uses: actions/checkout@main
with:
ref: gh-pages
token: ${{ secrets.GITHUB_TOKEN }}
# user git configs are needed for git commands to work
# actual authentication is done using secrets.GITHUB_TOKEN with write permission
- name: Set Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
- name: Download zipped HTML report
uses: actions/download-artifact@v3
with:
name: playwright-report
path: ${{ env.HTML_REPORT_URL_PATH }}
- name: Push HTML Report
timeout-minutes: 3
run: |
git add .
git commit -m "workflow: add HTML report for PR #$PR_NUMBER (run_id: ${{ github.run_id }}, attempt: ${{ github.run_attempt }})"
# In case if another action job pushed to gh-pages while we are rebasing for the current job
while true; do
git pull --rebase
if [ $? -ne 0 ]; then
echo "Failed to rebase. Please review manually."
exit 1
fi
git push
if [ $? -eq 0 ]; then
echo "Successfully pushed HTML report to repo."
exit 0
fi
done
- name: Output Report URL as Worfklow Annotation
run: |
FULL_HTML_REPORT_URL=https://canonical.github.io/lxd-ui/$HTML_REPORT_URL_PATH
echo "::notice title=Published Playwright Test Report::$FULL_HTML_REPORT_URL"