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

shuyangw pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git


The following commit(s) were added to refs/heads/master by this push:
     new 297a57a  chore: reduce FE e2e ci time (#1698)
297a57a is described below

commit 297a57a4081b7b55d7906f6084d319d0afc21579
Author: litesun <su...@apache.org>
AuthorDate: Sat Apr 3 17:04:37 2021 +0800

    chore: reduce FE e2e ci time (#1698)
---
 .github/workflows/frontend-e2e-test.yml            | 39 +++++++++++++++----
 ...d-e2e-test.yml => frontend-plugin-e2e-test.yml} | 44 ++++++++++++++--------
 web/cypress.json                                   |  4 +-
 web/package.json                                   |  4 +-
 4 files changed, 65 insertions(+), 26 deletions(-)

diff --git a/.github/workflows/frontend-e2e-test.yml 
b/.github/workflows/frontend-e2e-test.yml
index 0b92f9c..98e76c6 100644
--- a/.github/workflows/frontend-e2e-test.yml
+++ b/.github/workflows/frontend-e2e-test.yml
@@ -7,6 +7,8 @@ on:
   pull_request:
     branches:
       - master
+env:
+  CYPRESS_CACHE_FOLDER: cypress/cache
 defaults:
   run:
     working-directory: web
@@ -15,7 +17,6 @@ jobs:
   web-e2e:
     name: Frontend e2e test
     runs-on: ubuntu-latest
-
     services:
       etcd:
         image: bitnami/etcd:3.4.13
@@ -28,7 +29,6 @@ jobs:
     steps:
       - name: Checkout
         uses: actions/checkout@v2
-
       - name: Setup Node.js environment
         uses: actions/setup-node@v2.1.5
         with:
@@ -37,7 +37,7 @@ jobs:
       - name: Setup golang environment
         uses: actions/setup-go@v2.1.3
         with:
-          go-version: "1.13"
+          go-version: '1.13'
 
       - name: Start manager-api
         working-directory: ./api
@@ -45,23 +45,46 @@ jobs:
           sed -i 's@# - dubbo-proxy@- dubbo-proxy@' ./conf/conf.yaml
           nohup go run ./cmd/manager &
 
-      - name: Install front-end dependencies
-        run: yarn install
+      - name: Cache node_modules
+        uses: actions/cache@v2
+        id: yarn-cache
+        with:
+          path: '*/node_modules'
+          key: '${{ runner.os }}-yarn-cache0-${{ hashFiles(''**/yarn.lock'') 
}}'
+          restore-keys: |
+            ${{ runner.os }}-yarn-cache0
+
+      - name: Cache Cypress binary
+        uses: actions/cache@v2
+        id: cypress-binary-cache
+        with:
+          path: '*/cypress/cache'
+          key: cypress-${{ runner.os }}-cypress-cache0-${{ 
hashFiles('**/package.json') }}
+          restore-keys: |
+            cypress-${{ runner.os }}-cypress-cache0
+
+      - name: Install dependencies
+        if: steps.yarn-cache.outputs.cache-hit != 'true'
+        run: yarn
 
       - name: Start frontend then test
-        run: yarn test:e2e
+        run: |
+          rm -rf cypress/integration/plugin
+          yarn test:e2e
 
       - name: Report e2e coverage
         run: npx nyc report --reporter=text-summary
 
       - name: Upload coverage to Codecov
         run: |
-         bash <(curl -s https://codecov.io/bash) -f 
./coverage/coverage-final.json -F frontend-e2e-test
+          bash <(curl -s https://codecov.io/bash) -f 
./coverage/coverage-final.json -F frontend-e2e-test
 
       - name: Archive code coverage results
         uses: actions/upload-artifact@v2
         if: always()
         with:
           name: cypress-report
-          path: web/cypress/
+          path: |
+           web/cypress/videos
+           web/cypress/screenshots
           retention-days: 5
diff --git a/.github/workflows/frontend-e2e-test.yml 
b/.github/workflows/frontend-plugin-e2e-test.yml
similarity index 53%
copy from .github/workflows/frontend-e2e-test.yml
copy to .github/workflows/frontend-plugin-e2e-test.yml
index 0b92f9c..d919299 100644
--- a/.github/workflows/frontend-e2e-test.yml
+++ b/.github/workflows/frontend-plugin-e2e-test.yml
@@ -1,5 +1,4 @@
-name: Frontend e2e test
-
+name: Frontend e2e test for plugin
 on:
   push:
     branches:
@@ -7,6 +6,8 @@ on:
   pull_request:
     branches:
       - master
+env:
+  CYPRESS_CACHE_FOLDER: cypress/cache
 defaults:
   run:
     working-directory: web
@@ -15,7 +16,6 @@ jobs:
   web-e2e:
     name: Frontend e2e test
     runs-on: ubuntu-latest
-
     services:
       etcd:
         image: bitnami/etcd:3.4.13
@@ -24,11 +24,9 @@ jobs:
           - 2380:2380
         env:
           ALLOW_NONE_AUTHENTICATION: yes
-
     steps:
       - name: Checkout
         uses: actions/checkout@v2
-
       - name: Setup Node.js environment
         uses: actions/setup-node@v2.1.5
         with:
@@ -37,7 +35,7 @@ jobs:
       - name: Setup golang environment
         uses: actions/setup-go@v2.1.3
         with:
-          go-version: "1.13"
+          go-version: '1.13'
 
       - name: Start manager-api
         working-directory: ./api
@@ -45,23 +43,37 @@ jobs:
           sed -i 's@# - dubbo-proxy@- dubbo-proxy@' ./conf/conf.yaml
           nohup go run ./cmd/manager &
 
-      - name: Install front-end dependencies
-        run: yarn install
+      - name: Cache node_modules
+        uses: actions/cache@v2
+        id: yarn-cache
+        with:
+          path: '*/node_modules'
+          key: '${{ runner.os }}-yarn-cache0-${{ hashFiles(''**/yarn.lock'') 
}}'
+          restore-keys: |
+            ${{ runner.os }}-yarn-cache0
 
-      - name: Start frontend then test
-        run: yarn test:e2e
+      - name: Cache Cypress binary
+        uses: actions/cache@v2
+        id: cypress-binary-cache
+        with:
+          path: '*/cypress/cache'
+          key: cypress-${{ runner.os }}-cypress-cache0-${{ 
hashFiles('**/package.json') }}
+          restore-keys: |
+            cypress-${{ runner.os }}-cypress-cache0
 
-      - name: Report e2e coverage
-        run: npx nyc report --reporter=text-summary
+      - name: Install dependencies
+        if: steps.yarn-cache.outputs.cache-hit != 'true'
+        run: yarn
 
-      - name: Upload coverage to Codecov
-        run: |
-         bash <(curl -s https://codecov.io/bash) -f 
./coverage/coverage-final.json -F frontend-e2e-test
+      - name: Start frontend then test
+        run: yarn test-plugin:e2e
 
       - name: Archive code coverage results
         uses: actions/upload-artifact@v2
         if: always()
         with:
           name: cypress-report
-          path: web/cypress/
+          path: |
+           web/cypress/videos
+           web/cypress/screenshots
           retention-days: 5
diff --git a/web/cypress.json b/web/cypress.json
index 753aa48..db84cd7 100644
--- a/web/cypress.json
+++ b/web/cypress.json
@@ -2,5 +2,7 @@
   "viewportWidth": 1920,
   "viewportHeight": 1080,
   "baseUrl": "http://localhost:8000";,
-  "video": true
+  "video": true,
+  "numTestsKeptInMemory": 0,
+  "videoUploadOnPasses": false
 }
diff --git a/web/package.json b/web/package.json
index a98a193..f138a1b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -22,6 +22,7 @@
     "start": "umi dev",
     "start:e2e": "cross-env SERVE_ENV=test umi dev",
     "test:e2e": "start-server-and-test 'cross-env SERVE_ENV=test yarn start' 
http-get://localhost:8000 cypress:run-ci",
+    "test-plugin:e2e": "start-server-and-test 'cross-env SERVE_ENV=test yarn 
start' http-get://localhost:8000 cypress:run-plugin-ci",
     "start:dev": "cross-env REACT_APP_ENV=dev MOCK=none umi dev",
     "start:no-mock": "cross-env MOCK=none umi dev",
     "start:no-ui": "cross-env UMI_UI=none umi dev",
@@ -31,7 +32,8 @@
     "tsc": "tsc",
     "cypress:open": "cross-env CYPRESS_SERVE_ENV=test cypress open",
     "cypress:open-dev": "cross-env CYPRESS_SERVE_ENV=dev cypress open",
-    "cypress:run-ci": "cross-env CYPRESS_SERVE_ENV=test cypress run"
+    "cypress:run-ci": "cross-env CYPRESS_SERVE_ENV=test cypress run",
+    "cypress:run-plugin-ci": "cross-env CYPRESS_SERVE_ENV=test cypress run 
--spec 'cypress/integration/plugin/*.spec.js'"
   },
   "license": "Apache-2.0",
   "lint-staged": {

Reply via email to