64 lines
2.2 KiB
YAML
64 lines
2.2 KiB
YAML
name: Coverage Testing
|
|
|
|
on: [workflow_dispatch, push, pull_request]
|
|
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
Coverage:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node: [ 14, 16, 18 ]
|
|
env:
|
|
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
name: Node ${{ matrix.node }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
|
|
- name: Install Application
|
|
run: |
|
|
npm ci
|
|
npm install -g mocha c8 cypress@12
|
|
|
|
- name: Copy Test Config
|
|
run: cp ./data/config.testing.js ./data/config.js
|
|
|
|
- name: Code Climate (Before)
|
|
if: ${{ github.event_name != 'pull_request' && env.CC_TEST_REPORTER_ID != '' && matrix.node == 16 }}
|
|
run: |
|
|
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./codeclimate-test-reporter
|
|
chmod +x codeclimate-test-reporter
|
|
./codeclimate-test-reporter before-build
|
|
|
|
- name: Verify Cypress
|
|
run: cypress verify
|
|
env:
|
|
CYPRESS_VERIFY_TIMEOUT: 600000
|
|
|
|
- name: Run Coverage Testing
|
|
run: c8 --reporter=lcov --reporter=text --reporter=text-summary mocha --timeout 10000 --exit
|
|
|
|
- name: Code Climate (After)
|
|
if: ${{ github.event_name != 'pull_request' && env.CC_TEST_REPORTER_ID != '' && matrix.node == 16 }}
|
|
run: |
|
|
./codeclimate-test-reporter after-build -t lcov --exit-code $?
|
|
|
|
- name: Codacy
|
|
if: ${{ github.event_name != 'pull_request' && env.CODACY_PROJECT_TOKEN != '' && matrix.node == 16 }}
|
|
run: bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r ./coverage/lcov.info
|
|
|
|
- name: Codecov
|
|
if: ${{ github.event_name != 'pull_request' && env.CODECOV_TOKEN != '' && matrix.node == 16 }}
|
|
run: |
|
|
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
|
chmod +x codecov
|
|
./codecov -t ${CODECOV_TOKEN} |