| name: Frontend e2e test |
| |
| on: |
| push: |
| branches: |
| - master |
| paths-ignore: |
| - 'docs/**' |
| pull_request: |
| branches: |
| - master |
| paths-ignore: |
| - 'docs/**' |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} |
| cancel-in-progress: true |
| |
| env: |
| CYPRESS_CACHE_FOLDER: cypress/cache |
| defaults: |
| run: |
| working-directory: web |
| |
| jobs: |
| web-e2e: |
| name: Frontend e2e test |
| runs-on: ubuntu-latest |
| services: |
| etcd: |
| image: bitnami/etcd:3.4.13 |
| ports: |
| - 2379:2379 |
| - 2380:2380 |
| env: |
| ALLOW_NONE_AUTHENTICATION: yes |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v2 |
| with: |
| submodules: recursive |
| |
| - name: Setup Node.js environment |
| uses: actions/setup-node@v2.3.0 |
| with: |
| node-version: 14.x |
| |
| - name: Setup golang environment |
| uses: actions/setup-go@v2.1.3 |
| with: |
| go-version: '1.13' |
| |
| - name: Start manager-api |
| working-directory: ./api |
| run: | |
| sed -i 's@# - dubbo-proxy@- dubbo-proxy@' ./conf/conf.yaml |
| nohup go run ./main.go & |
| |
| - name: Cache node_modules |
| uses: actions/cache@v2.1.6 |
| 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.1.6 |
| 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: | |
| 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 |
| |
| - name: Archive code coverage results |
| uses: actions/upload-artifact@v2.2.4 |
| if: always() |
| with: |
| name: cypress-report |
| path: | |
| web/cypress/videos |
| web/cypress/screenshots |
| retention-days: 5 |