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}