NAS-141034 / 27.0.0-BETA.1 / Migrate shared control modules to tn-* #24504
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: WebUI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| paths-ignore: | |
| - 'src/assets/i18n/**' | |
| - 'tests/**' | |
| pull_request: | |
| branches: | |
| - '**' | |
| paths-ignore: | |
| - 'src/assets/i18n/**' | |
| - 'tests/**' | |
| permissions: | |
| contents: read | |
| jobs: | |
| install: | |
| name: Checkout and Install | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/prepare | |
| build: | |
| name: Build | |
| needs: [install] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/prepare | |
| - name: Build | |
| run: yarn build:prod | |
| - name: Check strict null checks | |
| run: yarn run check-env && yarn run strict-null-checks | |
| lint: | |
| name: Validate code style | |
| needs: [install] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/prepare | |
| - name: Generate default environment file | |
| run: yarn run check-env | |
| - name: Run linter | |
| run: yarn lint | |
| check-ux-team: | |
| if: github.event_name == 'pull_request' | |
| uses: ./.github/workflows/check-ux-team.yml | |
| test-ux-team: | |
| name: Run tests (UX Team - Self-hosted) | |
| needs: [install, check-ux-team] | |
| if: needs.check-ux-team.outputs.is_member == 'true' | |
| strategy: | |
| fail-fast: false | |
| runs-on: self-hosted | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/prepare | |
| - name: Run tests | |
| run: yarn test:pr --maxWorkers=50 | |
| - name: Upload coverage | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage | |
| path: coverage/webui/coverage-final.json | |
| - name: Upload test data | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-junit | |
| path: coverage/webui/junit.xml | |
| test: | |
| name: Run tests (Standard) | |
| needs: [install, check-ux-team] | |
| if: | | |
| always() && | |
| needs.install.result == 'success' && | |
| (github.event_name != 'pull_request' || needs.check-ux-team.outputs.is_member != 'true') | |
| strategy: | |
| fail-fast: false | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/prepare | |
| - name: Run tests | |
| run: yarn test:pr --maxWorkers=2 | |
| - name: Upload coverage | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage | |
| path: coverage/webui/coverage-final.json | |
| - name: Upload test data | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-junit | |
| path: coverage/webui/junit.xml | |
| report-coverage: | |
| name: Collect coverage | |
| runs-on: ubuntu-latest | |
| if: ${{ !cancelled() && github.repository == 'truenas/webui' }} | |
| needs: [test, test-ux-team] | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Download coverage and test data | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: 'coverage*' | |
| path: coverage | |
| merge-multiple: true | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v7 | |
| with: | |
| name: webui | |
| token: ${{ env.CODECOV_TOKEN }} | |
| files: coverage/coverage-final.json | |
| fail_ci_if_error: true | |
| - name: Upload extra test data to Codecov | |
| if: ${{ !cancelled() }} | |
| uses: codecov/test-results-action@v1 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| file: coverage/junit.xml |