Skip to content

NAS-141064 / 27.0.0-BETA.1 / Migrate system-tasks/ to tn-* #24500

NAS-141064 / 27.0.0-BETA.1 / Migrate system-tasks/ to tn-*

NAS-141064 / 27.0.0-BETA.1 / Migrate system-tasks/ to tn-* #24500

Workflow file for this run

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