From 4d82536bb1226e285b720aa77652be96decf3fec Mon Sep 17 00:00:00 2001 From: Avan Date: Tue, 13 Aug 2024 17:58:44 +0800 Subject: [PATCH 1/2] test: use codecov/codecov-action --- .github/workflows/ci.yml | 119 +++++++++++++++++++++++++++++++++------ 1 file changed, 103 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b8eec25..2097f2a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,28 +1,115 @@ -name: Node.js CI +name: CI -on: [push, pull_request] +on: ['push', 'pull_request'] jobs: - build: + setup: runs-on: ubuntu-latest steps: - - name: Checkout + - name: checkout uses: actions/checkout@v4 - - name: Install Node.js - uses: actions/setup-node@v3 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: cache package-lock.json + uses: actions/cache@v4 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: create package-lock.json + run: npm i --package-lock-only --ignore-scripts + + - name: hack for singe file + run: | + if [ ! -d "package-temp-dir" ]; then + mkdir package-temp-dir + fi + cp package-lock.json package-temp-dir + + - name: cache node_modules + id: node_modules_cache_id + uses: actions/cache@v4 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} + + - name: install + if: steps.node_modules_cache_id.outputs.cache-hit != 'true' + run: npm ci + + lint: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: restore cache from package-lock.json + uses: actions/cache@v4 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: restore cache from node_modules + uses: actions/cache@v4 with: - node-version: 18.x - - name: Install dependencies - run: npm install + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} + - name: lint run: npm run lint + + needs: setup + + compile: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: restore cache from package-lock.json + uses: actions/cache@v4 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: restore cache from node_modules + uses: actions/cache@v4 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} + - name: compile - run: npm run tsc && npm run compile - - name: test - run: npm run coverage - - name: Upload coverage reports to Codecov + run: npm run compile + + needs: setup + + coverage: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: restore cache from package-lock.json + uses: actions/cache@v4 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: restore cache from node_modules + uses: actions/cache@v4 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} + + - name: coverage + run: npm test -- --coverage + + - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: - fail_ci_if_error: true - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + token: ${{ secrets.CODECOV_TOKEN }} + + needs: setup From c79e32385e5132aeabcdb4d4b3a468e6ee9ba63d Mon Sep 17 00:00:00 2001 From: afc163 Date: Wed, 14 Aug 2024 14:01:31 +0800 Subject: [PATCH 2/2] Update .github/workflows/ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2097f2a..60a12d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,7 +82,7 @@ jobs: key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: compile - run: npm run compile + run: npm run tsc && npm run compile needs: setup