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

98 lines
2.9 KiB
YAML

name: CI
# Triggers the workflow on push or pull request events but only for the master branch
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
setup:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- name: checkout
uses: actions/checkout@v2
- 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
- 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: Test utils
run: npx jest test/utils
- name: Test FLinkSQL
run: npx jest test/parser/flinksql
- name: Test SparkSQL
run: npx jest test/parser/spark
- name: Test GenericSQL
run: npx jest test/parser/generic
- name: Test HiveSQL
run: npx jest test/parser/hive
- name: Test PGSQL
run: npx jest test/parser/pgsql
- name: Test PLSQL
run: npx jest test/parser/plsql
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