This is an automated email from the ASF dual-hosted git repository.

wu-sheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git

commit fca4ac45a4462874ba3fd8543d70ed6087f5e837
Author: Wu Sheng <[email protected]>
AuthorDate: Tue May 12 10:21:05 2026 +0800

    ci: monorepo workspace build and dependency license check
---
 .github/workflows/ci.yaml | 72 ++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 58 insertions(+), 14 deletions(-)

diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 7c14e47..d223e30 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -41,46 +41,90 @@ jobs:
   dependency-license:
     name: Dependency licenses
     runs-on: ubuntu-latest
-    timeout-minutes: 15
+    timeout-minutes: 20
     steps:
       - uses: actions/checkout@v6
         with:
           persist-credentials: false
+      - uses: pnpm/action-setup@v4
+        with:
+          version: 10
       - uses: actions/setup-node@v4
         with:
           node-version: '20'
-      - name: Install dependencies
-        run: npm ci || npm install
-      - name: Resolve and verify dependency licenses
+          cache: 'pnpm'
+      - run: pnpm install --frozen-lockfile
+      - name: Install license-eye
         run: |
           go install 
github.com/apache/skywalking-eyes/cmd/license-eye@5b7ee1731d036b5aac68f8bd3fc9e6f98ada082e
-          license-eye -v debug dependency resolve || exit 1
+      - name: Verify dependency licenses
+        run: license-eye -v debug dependency resolve
+
+  type-check:
+    name: Type-check (workspaces)
+    runs-on: ubuntu-latest
+    timeout-minutes: 15
+    steps:
+      - uses: actions/checkout@v6
+        with:
+          persist-credentials: false
+      - uses: pnpm/action-setup@v4
+        with:
+          version: 10
+      - uses: actions/setup-node@v4
+        with:
+          node-version: '20'
+          cache: 'pnpm'
+      - run: pnpm install --frozen-lockfile
+      - run: pnpm -r run type-check
 
-  build:
-    name: Build & type-check
+  build-ui:
+    name: Build · @skywalking-horizon-ui/ui
     runs-on: ubuntu-latest
     timeout-minutes: 15
     steps:
       - uses: actions/checkout@v6
         with:
           persist-credentials: false
+      - uses: pnpm/action-setup@v4
+        with:
+          version: 10
       - uses: actions/setup-node@v4
         with:
           node-version: '20'
-      - run: npm ci || npm install
-      - run: npm run lint
-      - run: npm run type-check
-      - run: npm run build
+          cache: 'pnpm'
+      - run: pnpm install --frozen-lockfile
+      - run: pnpm --filter @skywalking-horizon-ui/ui build
+
+  build-bff:
+    name: Build · @skywalking-horizon-ui/bff
+    runs-on: ubuntu-latest
+    timeout-minutes: 15
+    steps:
+      - uses: actions/checkout@v6
+        with:
+          persist-credentials: false
+      - uses: pnpm/action-setup@v4
+        with:
+          version: 10
+      - uses: actions/setup-node@v4
+        with:
+          node-version: '20'
+          cache: 'pnpm'
+      - run: pnpm install --frozen-lockfile
+      - run: pnpm --filter @skywalking-horizon-ui/bff build
 
   sanity-check:
     if: always() && !cancelled()
     name: Sanity check results
-    needs: [license-header, dependency-license, build]
+    needs: [license-header, dependency-license, type-check, build-ui, 
build-bff]
     runs-on: ubuntu-latest
-    timeout-minutes: 10
+    timeout-minutes: 5
     steps:
       - name: Check results
         run: |
           [[ ${{ needs.license-header.result }} == 'success' ]] || exit 1
           [[ ${{ needs.dependency-license.result }} == 'success' ]] || exit 1
-          [[ ${{ needs.build.result }} == 'success' ]] || exit 1
+          [[ ${{ needs.type-check.result }} == 'success' ]] || exit 1
+          [[ ${{ needs.build-ui.result }} == 'success' ]] || exit 1
+          [[ ${{ needs.build-bff.result }} == 'success' ]] || exit 1

Reply via email to