lava-oushudb-dt-sql-parser/.github/workflows/nodejs.yml

95 lines
2.8 KiB
YAML
Raw Normal View History

2023-05-12 11:05:21 +08:00
name: CI
2019-11-15 11:14:42 +08:00
2023-05-12 11:00:34 +08:00
# Triggers the workflow on push or pull request events but only for the master branch
on:
push:
branches: [master]
pull_request:
branches: [master]
2019-11-15 11:14:42 +08:00
jobs:
2023-05-12 11:00:34 +08:00
setup:
runs-on: ubuntu-latest
strategy:
matrix:
2023-05-12 11:11:30 +08:00
node-version: [18.x]
2023-05-12 11:00:34 +08:00
steps:
- name: checkout
uses: actions/checkout@v2
2023-05-12 11:00:34 +08:00
- name: cache yarn.lock
uses: actions/cache@v2
with:
path: package-temp-dir
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
2023-05-12 11:00:34 +08:00
- 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 Units Test
run: |
export NODE_OPTIONS="--max_old_space_size=4096"
npx jest test/utils
npx jest test/parser/flinksql
npx jest test/parser/spark
npx jest test/parser/generic
npx jest test/parser/hive
npx jest test/parser/pgsql
npx jest test/parser/plsql
2023-05-12 11:00:34 +08:00
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