build: update the Checks

This commit is contained in:
wewoor 2023-05-12 11:00:34 +08:00
parent 526a58ad2e
commit 7a2182d752

View File

@ -1,27 +1,89 @@
name: Node CI 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: 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: - name: cache yarn.lock
matrix: uses: actions/cache@v2
node-version: [16.x] with:
path: package-temp-dir
key: lock-${{ github.sha }}
steps: - name: create yarn.lock
- uses: actions/checkout@v1 run: yarn generate-lock-entry
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 - name: hack for single file
with: run: |
node-version: ${{ matrix.node-version }} if [ ! -d "package-temp-dir" ]; then
- name: install, test, build mkdir package-temp-dir
run: | fi
export NODE_OPTIONS="--max_old_space_size=4096" cp yarn.lock package-temp-dir
yarn install - name: cache node_modules
yarn test id: node_modules_cache_id
yarn build uses: actions/cache@v2
env: with:
CI: true 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