doc extend contribution guidelines with steps how to fetch and review pull requests #6770
Workflow file for this run
This file contains hidden or 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: Signed-off-by (DCO) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - 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@v6 | |
| - 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@v6 | |
| - name: Check inclusive naming | |
| uses: canonical/Inclusive-naming@main | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| reporter: github-pr-review | |
| fail-on-error: true | |
| check-unicode-characters: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Find disallowed Unicode characters (excluding .git and binary files) | |
| run: | | |
| echo "Scanning for disallowed Unicode characters..." | |
| # Match non-ASCII characters except — ü and → | |
| NON_ASCII_FILES=$(grep --color=always -P -n "[^\x00-\x7F—ü→]" -r . \ | |
| --exclude-dir=.git \ | |
| --exclude=*.png \ | |
| --exclude=*.woff2 \ | |
| --exclude=*.tar.gz || true) | |
| if [ -n "$NON_ASCII_FILES" ]; then | |
| echo "Disallowed Unicode characters found:" | |
| echo "$NON_ASCII_FILES" | |
| exit 1 | |
| else | |
| echo "No disallowed Unicode characters found." | |
| fi | |
| 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"] | |
| deployment: ["unclustered", "clustered"] | |
| outputs: | |
| job_status: ${{job.status}} | |
| env: | |
| LXD_OIDC_CLIENT_ID: "RYDnMpkygLAMfeo17lU7LYwWGxisRuRR" | |
| LXD_OIDC_CLIENT_SECRET: "CNKX4UmrZKZJq5rJy5VM_JfcNPqkws1rwWWQk_q0oyZ8gABARr19ic7xrhPssGA1" | |
| LXD_OIDC_ISSUER: "https://dev-h6c02msuggpi6ijh.eu.auth0.com/" | |
| LXD_OIDC_AUDIENCE: "https://dev-h6c02msuggpi6ijh.eu.auth0.com/api/v2/" | |
| LXD_OIDC_USER: "lxd-ui-e2e-tests@example.org" | |
| LXD_OIDC_PASSWORD: "lxd-ui-e2e-password" | |
| LXD_OIDC_GROUPS_CLAIM: "lxd-idp-groups" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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 | |
| VITE_PORT: 3000 | |
| run: | | |
| dotrun & | |
| curl --head --fail --retry-delay 2 --retry 100 --retry-connrefused --insecure https://localhost:8407 | |
| - name: Install LXD | |
| uses: canonical/setup-lxd@v1 | |
| with: | |
| channel: ${{ matrix.lxd_channel }} | |
| group: lxd | |
| - 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" | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - 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: sudo -E ./tests/scripts/setup_test | |
| - name: Run Playwright tests | |
| run: npx playwright test --project ${{ matrix.browser }}:lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}:${{ matrix.deployment }} | |
| - name: Rename Playwright report | |
| if: always() | |
| run: mv blob-report/report.zip blob-report/${{ matrix.browser }}-lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}-${{ matrix.deployment }}-report.zip | |
| - name: Upload ${{ matrix.browser }}-lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}-${{ matrix.deployment }} blob reports to be merged | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: blob-report-${{ matrix.browser }}-lxd-${{ steps.lxd-env.outputs.LXD_CHANNEL }}-${{ matrix.deployment }} | |
| 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@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - name: Download blob reports from GitHub Actions Artifacts | |
| uses: actions/download-artifact@v7 | |
| 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@v6 | |
| 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@v6 | |
| - 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 |