Kaynağa Gözat

ci: separate build and parallel test jobs for rtc-extra-test

rcmerci 1 hafta önce
ebeveyn
işleme
61daa0aff0
1 değiştirilmiş dosya ile 51 ekleme ve 8 silme
  1. 51 8
      .github/workflows/clj-rtc-e2e.yml

+ 51 - 8
.github/workflows/clj-rtc-e2e.yml

@@ -25,14 +25,10 @@ env:
   BABASHKA_VERSION: '1.0.168'
 
 jobs:
-  rtc-e2e-test-build:
-    name: Test ${{ matrix.test-task }}
+  build:
+    name: Build
     runs-on: ubuntu-22.04
     if: "contains(github.event.head_commit.message, 'rtc')"
-    strategy:
-      fail-fast: false
-      matrix:
-        test-task: [run-rtc-extra-test, run-rtc-extra-part2-test]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -84,13 +80,60 @@ jobs:
       - name: Prepare E2E test build
         run: |
           yarn gulp:build && clojure -M:cljs release app db-worker inference-worker --config-merge "{:closure-defines {frontend.config/DEV-RELEASE true}}" --debug && yarn webpack-app-build
+
+      - name: Upload build artifact
+        uses: actions/upload-artifact@v4
+        with:
+          name: static-build
+          path: static/
+          retention-days: 1
+
+  test:
+    name: Test ${{ matrix.test-task }}
+    needs: build
+    runs-on: ubuntu-22.04
+    if: "contains(github.event.head_commit.message, 'rtc')"
+    strategy:
+      fail-fast: false
+      matrix:
+        test-task: [run-rtc-extra-test, run-rtc-extra-part2-test]
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Set up Node
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ env.NODE_VERSION }}
+
+      - name: Set up Clojure
+        uses: DeLaGuardo/[email protected]
+        with:
+          cli: ${{ env.CLOJURE_VERSION }}
+          bb: ${{ env.BABASHKA_VERSION }}
+
+      - name: Clojure cache
+        uses: actions/cache@v4
+        with:
+          path: |
+            ~/.m2/repository
+            ~/.gitlibs
+          key: ${{ runner.os }}-clojure-deps-${{ hashFiles('deps.edn') }}
+          restore-keys: ${{ runner.os }}-clojure-deps-
+
+      - name: Download build artifact
+        uses: actions/download-artifact@v4
+        with:
+          name: static-build
+          path: static
+
+      - name: Prepare public dir
+        run: |
           rsync -avz --exclude node_modules --exclude android --exclude ios ./static/ ./public/
           ls -lR ./public
 
       - name: Run e2e tests
         run: cd clj-e2e && timeout 30m bb ${{ matrix.test-task }}
-        # env:
-        # DEBUG: "pw:api"
 
       - name: Collect screenshots
         if: ${{ failure() }}