Felipe97/llama-cpp-compiled
01.2k
1name: UI2 3on:4 workflow_dispatch:5 inputs:6 sha:7 description: 'Commit SHA1 to build'8 required: false9 type: string10 push:11 branches:12 - master13 paths: [14 '.github/workflows/ui.yml',15 '.github/workflows/ui-build.yml',16 'tools/ui/**.*',17 'tools/server/tests/**.*'18 ]19 pull_request:20 types: [opened, synchronize, reopened]21 paths: [22 '.github/workflows/ui.yml',23 '.github/workflows/ui-build.yml',24 'tools/ui/**.*',25 'tools/server/tests/**.*'26 ]27 28env:29 LLAMA_ARG_LOG_COLORS: 130 LLAMA_ARG_LOG_PREFIX: 131 LLAMA_ARG_LOG_TIMESTAMPS: 132 LLAMA_ARG_LOG_VERBOSITY: 1033 34concurrency:35 group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.run_id }}36 cancel-in-progress: true37 38jobs:39 ui-build:40 name: Build static output41 uses: ./.github/workflows/ui-build.yml42 43 ui-checks:44 name: Checks45 needs: ui-build46 runs-on: ubuntu-24.0447 continue-on-error: true48 steps:49 - name: Checkout code50 uses: actions/checkout@v651 with:52 fetch-depth: 053 ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}54 55 - name: Setup Node.js56 id: node57 uses: actions/setup-node@v658 with:59 node-version: "24"60 # cache: "npm"61 # cache-dependency-path: "tools/ui/package-lock.json"62 package-manager-cache: false63 64 - name: Download built UI artifacts65 uses: actions/download-artifact@v666 with:67 name: llama-ui.zip68 path: tools/ui/dist/69 70 - name: Install dependencies71 id: setup72 if: ${{ steps.node.conclusion == 'success' }}73 run: npm ci74 working-directory: tools/ui75 76 - name: Run type checking77 if: ${{ always() && steps.setup.conclusion == 'success' }}78 run: npm run check79 working-directory: tools/ui80 81 - name: Run linting82 if: ${{ always() && steps.setup.conclusion == 'success' }}83 run: npm run lint84 working-directory: tools/ui85 86 - name: Install Playwright browsers87 id: playwright88 if: ${{ always() && steps.setup.conclusion == 'success' }}89 run: npx playwright install --with-deps90 working-directory: tools/ui91 92 - name: Run Client tests93 if: ${{ always() && steps.playwright.conclusion == 'success' }}94 run: npm run test:client95 working-directory: tools/ui96 97 - name: Run Unit tests (uses pre-built dist/ from ui-build)98 if: ${{ always() && steps.playwright.conclusion == 'success' }}99 run: npm run test:unit100 working-directory: tools/ui101 102 e2e-tests:103 name: E2E Tests104 needs: ui-build105 runs-on: ubuntu-24.04106 steps:107 - name: Checkout code108 uses: actions/checkout@v6109 with:110 fetch-depth: 0111 ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}112 113 - name: Setup Node.js114 id: node115 uses: actions/setup-node@v6116 with:117 node-version: "24"118 # cache: "npm"119 # cache-dependency-path: "tools/ui/package-lock.json"120 package-manager-cache: false121 122 - name: Install dependencies123 id: setup124 if: ${{ steps.node.conclusion == 'success' }}125 run: npm ci126 working-directory: tools/ui127 128 - name: Download built UI artifacts (reuses ui-build)129 uses: actions/download-artifact@v6130 with:131 name: llama-ui.zip132 path: tools/ui/dist/133 134 - name: Install Playwright browsers135 id: playwright136 if: ${{ always() && steps.setup.conclusion == 'success' }}137 run: npx playwright install --with-deps138 working-directory: tools/ui139 140 - name: Build Storybook141 if: ${{ always() && steps.playwright.conclusion == 'success' }}142 run: npm run build-storybook143 working-directory: tools/ui144 145 - name: Run UI tests146 if: ${{ always() && steps.playwright.conclusion == 'success' }}147 run: npm run test:ui -- --testTimeout=60000148 working-directory: tools/ui149 150 - name: Run E2E tests (uses pre-built dist/ from ui-build)151 if: ${{ always() && steps.playwright.conclusion == 'success' }}152 run: npm run test:e2e153 working-directory: tools/ui154 