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 runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
node-version: [16.x] node-version: [16.x, 18.x]
steps: steps:
- uses: actions/checkout@v1 - name: checkout
- name: Use Node.js ${{ matrix.node-version }} uses: actions/checkout@v2
uses: actions/setup-node@v1
- name: cache yarn.lock
uses: actions/cache@v2
with: with:
node-version: ${{ matrix.node-version }} path: package-temp-dir
- name: install, test, build key: lock-${{ github.sha }}
- 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: | run: |
export NODE_OPTIONS="--max_old_space_size=4096" export NODE_OPTIONS="--max_old_space_size=4096"
yarn install
yarn test yarn test
yarn build
env: build:
CI: true 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