From 7a2182d75209126dcd671796b34a127650515618 Mon Sep 17 00:00:00 2001 From: wewoor Date: Fri, 12 May 2023 11:00:34 +0800 Subject: [PATCH] build: update the Checks --- .github/workflows/nodejs.yml | 102 ++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 20 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 2ad53a9..06fa76c 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -1,27 +1,89 @@ name: Node CI -on: [push] +# Triggers the workflow on push or pull request events but only for the master branch +on: + push: + branches: [master] + pull_request: + branches: [master] jobs: - build: + setup: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [16.x, 18.x] - runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v2 - strategy: - matrix: - node-version: [16.x] + - name: cache yarn.lock + uses: actions/cache@v2 + with: + path: package-temp-dir + key: lock-${{ github.sha }} - steps: - - uses: actions/checkout@v1 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: install, test, build - run: | - export NODE_OPTIONS="--max_old_space_size=4096" - yarn install - yarn test - yarn build - env: - CI: true + - name: create yarn.lock + run: yarn generate-lock-entry + + - name: hack for single file + run: | + if [ ! -d "package-temp-dir" ]; then + mkdir package-temp-dir + fi + cp yarn.lock package-temp-dir + - name: cache node_modules + id: node_modules_cache_id + uses: actions/cache@v2 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/yarn.lock') }} + + - name: install + if: steps.node_modules_cache_id.outputs.cache-hit != 'true' + run: yarn + + test: + runs-on: ubuntu-latest + needs: [setup] + steps: + - uses: actions/checkout@v2 + + - name: Restore cache from yarn.lock + uses: actions/cache@v2 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: Restore cache from node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/yarn.lock') }} + + - name: Run Unit Test + run: | + export NODE_OPTIONS="--max_old_space_size=4096" + yarn test + + build: + runs-on: ubuntu-latest + needs: [setup] + steps: + - uses: actions/checkout@v2 + + - name: Restore cache from yarn.lock + uses: actions/cache@v2 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: Restore cache from node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/yarn.lock') }} + + - name: Run Build + run: yarn build \ No newline at end of file