Skip to content

feat: [WD-16972] TLS user management spike. #4373

feat: [WD-16972] TLS user management spike.

feat: [WD-16972] TLS user management spike. #4373

Workflow file for this run

name: PR checks
on: pull_request
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
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:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: yarn install --immutable
- name: Lint scss
run: yarn lint-scss
- name: Lint JS
run: yarn lint-js
check-inclusive-naming:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check inclusive naming
uses: canonical/Inclusive-naming@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
fail-on-error: true
browser-e2e-test:
name: e2e-tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
lxd_channel: ["5.0/edge", "5.21/edge", "latest/edge"]
browser: ["chromium", "firefox"]
outputs:
job_status: ${{job.status}}
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: ${{ matrix.lxd_channel }}
- 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 Browsers
run: npx playwright install --with-deps ${{ matrix.browser }}
- name: Set lxd channel env variable
id: lxd-env
run: |
# need to change / to - in lxd channel string for report naming
LXD_CHANNEL=$(echo '${{ matrix.lxd_channel }}' | sed 's#/#-#g')
echo "LXD_CHANNEL=$LXD_CHANNEL" >> $GITHUB_OUTPUT
- name: Setup for tests
if: ${{ matrix.lxd_channel != '5.0/edge' }}
shell: bash
run: ./tests/scripts/setup_test
- name: Run Playwright tests
run: npx playwright test --project ${{ matrix.browser }}:lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}
- name: Rename Playwright report
if: always()
run: mv blob-report/report.zip blob-report/${{ matrix.browser }}-lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}-report.zip
- name: Upload ${{ matrix.browser }}-lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }} blob reports to be merged
if: always()
uses: actions/upload-artifact@v4
with:
name: blob-report-${{ matrix.browser }}-lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}
path: blob-report
retention-days: 1
merge-e2e-reports:
if: always()
needs: [browser-e2e-test]
env:
HTML_REPORT_URL_PATH: reports/pr-${{ github.event.number }}/${{ github.run_id }}/${{ github.run_attempt }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@v4
with:
path: blob-reports
pattern: blob-report-*
merge-multiple: true
# NOTE: there is no need to install playwright dependencies since we only need to merge reports here
- name: Merge into HTML Report
run: npx playwright merge-reports --config=merge.playwright.config.ts ./blob-reports
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 14
js-tests:
name: js-tests
runs-on: ubuntu-latest
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 Javascript tests
run: dotrun test-js