Skip to content

feat: [WD-16894] Add bulk deletion and group modification of TLS User… #306

feat: [WD-16894] Add bulk deletion and group modification of TLS User…

feat: [WD-16894] Add bulk deletion and group modification of TLS User… #306

Workflow file for this run

name: Test coverage
on:
push:
branches:
- main
jobs:
e2e-coverage:
name: e2e-test-coverage
runs-on: ubuntu-latest
env:
LXD_OIDC_CLIENT_ID: "gxj297yfAjmklILK5WqPWDSbtVBAeSQm"
LXD_OIDC_ISSUER: "https://dev-xjrvvfikbsv4jxn7.us.auth0.com/"
LXD_OIDC_AUDIENCE: "https://dev-xjrvvfikbsv4jxn7.us.auth0.com/api/v2/"
LXD_OIDC_USER: "[email protected]"
LXD_OIDC_PASSWORD: "lxd-ui-e2e-password"
LXD_OIDC_GROUPS_CLAIM: "lxd-idp-groups"
steps:
- uses: actions/checkout@v4
- 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 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: 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
sudo lxc config set user.show_permissions=true
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Playwright Browser
run: npx playwright install --with-deps chromium
- name: Setup for tests
shell: bash
run: ./tests/scripts/setup_test
- name: Run tests with coverage
shell: bash
run: |
set -x
sudo chmod -R 0777 ../lxd-ui
yarn test-coverage
zip -r coverage/playwright-report/cobertura-coverage.zip coverage/playwright-report/cobertura-coverage.xml
DOTRUN_CONTAINER_ID=$(docker ps | awk '{print $1}' | tail -n1)
docker stop $DOTRUN_CONTAINER_ID
# Remove all monaco-editor build files, which causes error in upload-artifact due to invalid characters in file naming
find . -type d -name "monaco-editor" -exec rm -r {} +
- name: Upload coverage report
if: always()
uses: actions/upload-artifact@v4
with:
name: lxd-coverage
path: coverage/playwright-report
retention-days: 1
publish-coverage-report:
name: publish-coverage-report
runs-on: ubuntu-latest
needs: e2e-coverage
continue-on-error: true
steps:
- uses: actions/checkout@v4
with:
ref: gh-pages
token: ${{ secrets.GITHUB_TOKEN }}
- name: Cleanup coverage directory
run: |
rm -rf coverage
mkdir coverage
- name: Download coverage report artifact
uses: actions/download-artifact@v4
with:
name: lxd-coverage
path: coverage
# 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: Push coverage Report
timeout-minutes: 3
run: |
git add .
git commit -m "workflow: update coverage report"
# In case of another action job pushing 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/coverage
echo "::notice title=Published Playwright Test Report::$FULL_HTML_REPORT_URL"
tics-report:
runs-on: ubuntu-latest
needs: publish-coverage-report
steps:
- uses: actions/checkout@v4
- name: Install Dotrun
run: |
sudo pip3 install dotrun
- name: Install LXD-UI dependencies
run: |
set -x
sudo chmod 0777 ../lxd-ui
dotrun install
- name: Produce TICS report
shell: bash
run: |
set -x
export TICSAUTHTOKEN=${{ secrets.TICS_AUTH_TOKEN }}
curl --silent --show-error "https://canonical.tiobe.com/tiobeweb/TICS/api/public/v1/fapi/installtics/Script?cfg=default&platform=linux&url=https://canonical.tiobe.com/tiobeweb/TICS/" > install_tics.sh
. ./install_tics.sh
TICSQServer -project lxd-ui -tmpdir /tmp/tics -branchdir .