From ea361e4aa5b5a667b3a1f7d7d3ea874749a619dc Mon Sep 17 00:00:00 2001 From: Jeremy Ho Date: Fri, 20 Oct 2023 12:49:13 -0700 Subject: [PATCH] Update tests and coverage pipeline Signed-off-by: Jeremy Ho --- .github/workflows/unit-tests.yaml | 58 +++++++++++++++++-------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 5a9197e..3e9da6b 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -1,33 +1,40 @@ --- name: Tests + on: - push - pull_request + jobs: test-app: + name: Unit Tests runs-on: ubuntu-latest defaults: run: working-directory: app + outputs: + HAS_CC_SECRETS: ${{ steps.check-secrets.outputs.HAS_CC_SECRETS }} timeout-minutes: 10 strategy: fail-fast: true matrix: node-version: - - 12.x - 14.x - 16.x + - 18.x steps: - name: Checkout Repository - uses: actions/checkout@v2 - with: - fetch-depth: 0 + uses: actions/checkout@v3 + - name: Check CodeClimate Secrets + id: check-secrets + run: | + echo "HAS_CC_SECRETS=${{ secrets.CC_TEST_REPORTER_ID != '' }}" >> $GITHUB_OUTPUT - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Cache node modules - uses: actions/cache@v2 + uses: actions/cache@v3 id: cache-app env: cache-name: cache-node-modules @@ -46,37 +53,36 @@ jobs: env: CI: true - name: Save Coverage Results - if: matrix.node-version == '16.x' - uses: actions/upload-artifact@v2 + if: matrix.node-version == '18.x' + uses: actions/upload-artifact@v3 with: name: coverage-app path: ${{ github.workspace }}/app/coverage retention-days: 1 + - name: Monitor Coverage + if: "matrix.node-version == '18.x' && ! github.event.pull_request.head.repo.fork" + uses: slavcodev/coverage-monitor-action@v1 + with: + comment_mode: update + comment_footer: false + coverage_path: app/coverage/clover.xml + github_token: ${{ secrets.GITHUB_TOKEN }} + threshold_alert: 50 + threshold_warning: 80 + test-coverage: - needs: - - test-app + name: Publish to Code Climate + needs: test-app + if: needs.test-app.outputs.HAS_CC_SECRETS == 'true' runs-on: ubuntu-latest timeout-minutes: 10 steps: - - name: Check Workflow Secrets - id: check-secrets - run: | - unset HAS_SECRETS - if [ -n "$CC_TEST_REPORTER_ID" ]; then HAS_SECRETS='true'; fi - echo ::set-output name=HAS_SECRETS::${HAS_SECRETS} - env: - CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} - name: Checkout Repository - if: steps.check-secrets.outputs.HAS_SECRETS - uses: actions/checkout@v2 - with: - fetch-depth: 0 + uses: actions/checkout@v3 - name: Restore Coverage Results - if: steps.check-secrets.outputs.HAS_SECRETS - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 - name: Publish code coverage - if: steps.check-secrets.outputs.HAS_SECRETS - uses: paambaati/codeclimate-action@v2.7.5 + uses: paambaati/codeclimate-action@v3.2.0 env: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} with: