feat: [WD-16972] TLS user management spike. #4373
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |