Skip to content

build(nx): setup workspace & migrate packages #777

build(nx): setup workspace & migrate packages

build(nx): setup workspace & migrate packages #777

Workflow file for this run

name: CI
on:
pull_request:
push:
jobs:
unit-tests:
runs-on: buildjet-2vcpu-ubuntu-2004
strategy:
matrix:
node-version: [ 18.x ]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache node_modules
uses: actions/cache@v1
with:
path: "**/node_modules"
key: ${{ runner.os }}-all2-node_modules-${{ hashFiles('**/package-lock.json') }}
- name: npm install
run: npm ci
- name: Lerna bootstrap
run: |
npm run bootstrap:ci -- \
--ignore @deepkit/mongo \
--ignore @deepkit/example-app \
--ignore @deepkit/fs \
--ignore @deepkit/vite \
--ignore @deepkit/framework-examples \
--ignore @deepkit/benchmark \
--ignore @deepkit/mysql \
--ignore @deepkit/postgres \
--ignore @deepkit/orm-browser-example \
--ignore @deepkit/orm-browser;
npm run link
- name: Build
run: |
npm run install-compiler
./node_modules/.bin/tsc --build \
packages/angular-universal/tsconfig.json \
packages/api-console-module/tsconfig.json \
packages/broker/tsconfig.json \
packages/bson/tsconfig.json \
packages/core/tsconfig.json \
packages/core-rxjs/tsconfig.json \
packages/crypto/tsconfig.json \
packages/framework/tsconfig.json \
packages/framework-debug-api/tsconfig.json \
packages/framework-integration/tsconfig.json \
packages/orm-browser-api/tsconfig.json \
packages/rpc/tsconfig.json \
packages/event/tsconfig.json \
packages/workflow/tsconfig.json \
packages/stopwatch/tsconfig.json \
packages/injector/tsconfig.json \
packages/app/tsconfig.json \
packages/http/tsconfig.json \
packages/orm/tsconfig.json \
packages/sql/tsconfig.json \
packages/sqlite/tsconfig.json \
packages/topsort/tsconfig.json \
packages/type/tsconfig.json \
packages/type-spec/tsconfig.json
npm run link
- name: Test
run: |
npm run test:coverage \
packages/angular-universal/ \
packages/broker/ \
packages/bson/ \
packages/core/ \
packages/core-rxjs/ \
packages/crypto/ \
packages/framework/ \
packages/framework-debug-api/ \
packages/framework-integration/ \
packages/rpc/ \
packages/topsort/ \
packages/event/ \
packages/http/ \
packages/injector/ \
packages/logger/ \
packages/template/ \
packages/stopwatch/ \
packages/workflow/ \
packages/type/
- name: Send coverage
run: ./node_modules/.bin/codecov -f coverage/*.json
orm-postgres:
needs:
- unit-tests
runs-on: buildjet-2vcpu-ubuntu-2004
strategy:
matrix:
node-version: [ 18.x ]
postgres-version: [ 14 ]
services:
postgres:
image: postgres:${{ matrix.postgres-version }}
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ''
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- "5432:5432"
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache node_modules
uses: actions/cache@v1
with:
path: "**/node_modules"
key: ${{ runner.os }}-postgres-node_modules-${{ hashFiles('**/package-lock.json') }}
- name: npm install
run: npm install -g npm && npm install
- name: Lerna bootstrap
run: |
npm run bootstrap -- \
--scope @deepkit/app --scope @deepkit/postgres --scope @deepkit/orm --scope @deepkit/event --scope @deepkit/injector --scope @deepkit/stopwatch --scope @deepkit/workflow --scope @deepkit/stopwatch --scope @deepkit/sql \
--scope @deepkit/orm-integration --scope @deepkit/topsort \
--scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger;
./node_modules/.bin/npm-local-development --no-watcher
- name: Build
run: |
npm run install-compiler
./node_modules/.bin/tsc --build packages/postgres/tsconfig.json;
./node_modules/.bin/npm-local-development --no-watcher
- name: Test
run: npm run test:coverage packages/postgres/
- name: Send coverage
run: ./node_modules/.bin/codecov -f coverage/*.json
orm-mysql:
needs:
- unit-tests
runs-on: buildjet-2vcpu-ubuntu-2004
strategy:
matrix:
node-version: [ 18.x ]
mysql-version: [ 8.0 ]
services:
mysql:
image: "mysql:${{ matrix.mysql-version }}"
options: >-
--health-cmd "mysqladmin ping --silent"
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes
-e MYSQL_DATABASE=default
ports:
- "3306:3306"
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache node_modules
uses: actions/cache@v1
with:
path: "**/node_modules"
key: ${{ runner.os }}-mysql-node_modules-${{ hashFiles('**/package-lock.json') }}
- name: npm install
run: npm install -g npm && npm install
- name: Lerna bootstrap
run: |
npm run bootstrap -- \
--scope @deepkit/app --scope @deepkit/mysql --scope @deepkit/orm --scope @deepkit/event --scope @deepkit/injector --scope @deepkit/stopwatch --scope @deepkit/workflow --scope @deepkit/stopwatch --scope @deepkit/sql \
--scope @deepkit/orm-integration --scope @deepkit/topsort \
--scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger;
./node_modules/.bin/npm-local-development --no-watcher
- name: Build
run: |
npm run install-compiler
./node_modules/.bin/tsc --build packages/mysql/tsconfig.json
./node_modules/.bin/npm-local-development --no-watcher
- name: Test
run: npm run test:coverage packages/mysql/
- name: Send coverage
run: ./node_modules/.bin/codecov -f coverage/*.json
orm-sqlite:
needs:
- unit-tests
runs-on: buildjet-2vcpu-ubuntu-2004
strategy:
matrix:
node-version: [ 18.x ]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache node_modules
uses: actions/cache@v1
with:
path: "**/node_modules"
key: ${{ runner.os }}-sqlite-node_modules-${{ hashFiles('**/package-lock.json') }}
- name: npm install
run: npm install -g npm && npm install
- name: Lerna bootstrap
run: |
npm run bootstrap -- \
--scope @deepkit/app --scope @deepkit/sqlite --scope @deepkit/orm --scope @deepkit/event --scope @deepkit/injector --scope @deepkit/stopwatch --scope @deepkit/workflow --scope @deepkit/stopwatch --scope @deepkit/sql \
--scope @deepkit/orm-integration --scope @deepkit/topsort \
--scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger;
./node_modules/.bin/npm-local-development --no-watcher
- name: Build
run: |
npm run install-compiler
./node_modules/.bin/tsc --build packages/sqlite/tsconfig.json
./node_modules/.bin/npm-local-development --no-watcher
- name: Test
run: npm run test:coverage packages/sqlite/
- name: Send coverage
run: ./node_modules/.bin/codecov -f coverage/*.json
orm-mongo:
needs:
- unit-tests
runs-on: buildjet-2vcpu-ubuntu-2004
strategy:
matrix:
node-version: [ 18.x ]
mongo-version: [ 4.0 ]
services:
# this is used for the simple-auth test
mongo:
image: mongo:5.0.10
ports:
- 27018:27017
env:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
MONGO_INITDB_DATABASE: root-db
volumes:
- /packages/mongo/tests/docker/simple-auth/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js
steps:
- name: Start MongoDB
uses: supercharge/[email protected]
with:
mongodb-version: ${{ matrix.mongo-version }}
mongodb-replica-set: test-rs
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache node_modules
uses: actions/cache@v1
with:
path: "**/node_modules"
key: ${{ runner.os }}-benchmark-node_modules-${{ hashFiles('**/package-lock.json') }}
- name: npm install
run: npm install -g npm && npm install
- name: Lerna bootstrap
run: |
npm run bootstrap -- \
--scope @deepkit/app --scope @deepkit/mongo --scope @deepkit/bson \
--scope @deepkit/orm --scope @deepkit/event --scope @deepkit/injector --scope @deepkit/stopwatch --scope @deepkit/workflow --scope @deepkit/stopwatch --scope @deepkit/sql \
--scope @deepkit/orm-integration --scope @deepkit/topsort \
--scope @deepkit/type --scope @deepkit/type-compiler --scope @deepkit/type-spec --scope @deepkit/core --scope @deepkit/logger;
./node_modules/.bin/npm-local-development --no-watcher
- name: Build
run: |
npm run install-compiler
./node_modules/.bin/tsc --build packages/mongo/tsconfig.json
./node_modules/.bin/npm-local-development --no-watcher
- name: Test
run: npm run test:coverage packages/mongo/
- name: Send coverage
run: ./node_modules/.bin/codecov -f coverage/*.json
# benchmark:
# runs-on: buildjet-2vcpu-ubuntu-2004
# needs:
# - unit-tests
# - orm-postgres
# - orm-mysql
# - orm-sqlite
# - orm-mongo
# services:
# mongo:
# image: "mongo:4.2"
# ports:
# - "27017:27017"
# redis:
# image: "redis:6.0"
# ports:
# - "6379:6379"
# mysql:
# image: "mysql:8.0"
# options: >-
# --health-cmd "mysqladmin ping --silent"
# -e MYSQL_ALLOW_EMPTY_PASSWORD=yes
# -e MYSQL_DATABASE=default
# ports:
# - "3306:3306"
# postgres:
# image: postgres:10.10
# env:
# POSTGRES_USER: postgres
# POSTGRES_DB: postgres
# ports:
# - "5432:5432"
# options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
# steps:
# - name: Use Node.js 18.x
# uses: actions/setup-node@v1
# with:
# node-version: 18.x
# - name: npm install
# run: npm install
# - name: Lerna bootstrap
# run: |
# npm run bootstrap -- \
# --ignore @deepkit/example-app \
# --ignore @deepkit/fs \
# --ignore @deepkit/framework-examples
# --ignore @deepkit/orm-browser
# --ignore @deepkit/orm-browser-gui
# - name: Build
# run: |
# ./node_modules/.bin/tsc --build \
# packages/broker/tsconfig.json \
# packages/bson/tsconfig.json \
# packages/core/tsconfig.json \
# packages/core-rxjs/tsconfig.json \
# packages/crypto/tsconfig.json \
# packages/framework/tsconfig.json \
# packages/framework-debug-api/tsconfig.json \
# packages/rpc/tsconfig.json \
# packages/mongo/tsconfig.json \
# packages/sqlite/tsconfig.json \
# packages/mysql/tsconfig.json \
# packages/postgres/tsconfig.json \
# packages/orm/tsconfig.json \
# packages/rpc/tsconfig.json \
# packages/rpc-tcp/tsconfig.json \
# packages/sql/tsconfig.json \
# packages/sqlite/tsconfig.json \
# packages/topsort/tsconfig.json \
# packages/type/tsconfig.json
# - name: Benchmark setup
# run: cd packages/benchmark && sh setup.sh
# - name: Benchmark run
# run: cd packages/benchmark && npm run benchmark