Implement Turborepo to include Build Caching in CI/CD

This commit is contained in:
Amruth Pillai
2023-06-07 19:50:48 +02:00
parent d4b6c16bf9
commit 0173ce32c3
88 changed files with 202 additions and 107 deletions

View File

@ -21,8 +21,10 @@ COPY --from=dependencies /app/node_modules ./node_modules
COPY --from=dependencies /app/schema/node_modules ./schema/node_modules
COPY --from=dependencies /app/server/node_modules ./server/node_modules
RUN pnpm run --filter schema build \
&& pnpm run --filter server build
ARG TURBO_TOKEN
ENV TURBO_TOKEN=$TURBO_TOKEN
RUN pnpm exec turbo --filter server build
FROM mcr.microsoft.com/playwright:v1.34.3-focal as production

View File

@ -1,10 +1,9 @@
{
"name": "@reactive-resume/server",
"name": "server",
"scripts": {
"lint": "eslint --fix src",
"dev": "nest start --watch",
"build": "rimraf dist && nest build",
"debug": "nest start --debug --watch",
"start": "node dist/main"
},
"dependencies": {
@ -51,7 +50,7 @@
"devDependencies": {
"@nestjs/cli": "^9.5.0",
"@nestjs/schematics": "^9.2.0",
"@reactive-resume/schema": "workspace:*",
"schema": "workspace:*",
"@types/bcryptjs": "^2.4.2",
"@types/cookie-parser": "^1.4.3",
"@types/express": "^4.17.17",

View File

@ -1,9 +1,9 @@
import { HttpService } from '@nestjs/axios';
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { Font } from '@reactive-resume/schema';
import get from 'lodash/get';
import { firstValueFrom } from 'rxjs';
import { Font } from 'schema';
import cachedResponse from './assets/cachedResponse.json';

View File

@ -1,4 +1,12 @@
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import csv from 'csvtojson';
import dayjs from 'dayjs';
import { readFile, unlink } from 'fs/promises';
import cloneDeep from 'lodash/cloneDeep';
import get from 'lodash/get';
import isEmpty from 'lodash/isEmpty';
import merge from 'lodash/merge';
import StreamZip from 'node-stream-zip';
import {
Award,
Certificate,
@ -12,15 +20,7 @@ import {
Skill,
Volunteer,
WorkExperience,
} from '@reactive-resume/schema';
import csv from 'csvtojson';
import dayjs from 'dayjs';
import { readFile, unlink } from 'fs/promises';
import cloneDeep from 'lodash/cloneDeep';
import get from 'lodash/get';
import isEmpty from 'lodash/isEmpty';
import merge from 'lodash/merge';
import StreamZip from 'node-stream-zip';
} from 'schema';
import { DeepPartial } from 'typeorm';
import { v4 as uuidv4 } from 'uuid';

View File

@ -1,4 +1,4 @@
import { Controller, GatewayTimeoutException,Get, Param, Query } from '@nestjs/common';
import { Controller, GatewayTimeoutException, Get, Param, Query } from '@nestjs/common';
import { PrinterService } from './printer.service';

View File

@ -1,11 +1,11 @@
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { SchedulerRegistry } from '@nestjs/schedule';
import { PageConfig } from '@reactive-resume/schema';
import { access, mkdir, readdir, unlink, writeFile } from 'fs/promises';
import { join } from 'path';
import { PDFDocument } from 'pdf-lib';
import { BrowserContext, chromium } from 'playwright-chromium';
import { PageConfig } from 'schema';
const minimal_chromium_args = [
'--autoplay-policy=user-gesture-required',

View File

@ -1,4 +1,4 @@
import { Resume } from '@reactive-resume/schema';
import { Resume } from 'schema';
const defaultCSS = `/* Enter custom CSS here */

View File

@ -1,4 +1,4 @@
import { Basics, Metadata, Section } from '@reactive-resume/schema';
import { Basics, Metadata, Section } from 'schema';
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, Unique, UpdateDateColumn } from 'typeorm';
import { User } from '@/users/entities/user.entity';

View File

@ -2,7 +2,6 @@ import { DeleteObjectCommand, PutObjectCommand, S3, S3Client } from '@aws-sdk/cl
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { InjectRepository } from '@nestjs/typeorm';
import { Resume as ResumeSchema } from '@reactive-resume/schema';
import fs from 'fs/promises';
import isEmpty from 'lodash/isEmpty';
import pick from 'lodash/pick';
@ -10,6 +9,7 @@ import sample from 'lodash/sample';
import set from 'lodash/set';
import { nanoid } from 'nanoid';
import { extname } from 'path';
import { Resume as ResumeSchema } from 'schema';
import { Repository } from 'typeorm';
import { PostgresErrorCode } from '@/database/errorCodes.enum';