Commit 6893fa0a authored by Ruslan Konviser's avatar Ruslan Konviser
Browse files

feat: switch to new architecture

parent c9bc7fc7
Loading
Loading
Loading
Loading
+102 −83
Original line number Diff line number Diff line
@@ -25,6 +25,14 @@ aliases:
          sudo dpkg -i google-chrome.deb
          sudo sed -i 's|HERE/chrome\"|HERE/chrome\" --disable-setuid-sandbox|g' /opt/google/chrome/google-chrome
          rm google-chrome.deb
    - &install-gradle
      name: Install Gradle
      command: |
          wget https://services.gradle.org/distributions/gradle-4.0.2-bin.zip -P /tmp
          sudo unzip -d /opt/gradle /tmp/gradle-*.zip
          echo 'export GRADLE_HOME=/opt/gradle/gradle-4.0.2' >> $BASH_ENV
          echo 'export PATH=$PATH:/opt/gradle/gradle-4.0.2/bin' >> $BASH_ENV
          source $BASH_ENV
    - &install-yarn
      name: Install Latest Yarn
      command: |
@@ -48,7 +56,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/monorepo-root
        docker:
            - image: circleci/node:10.16.0
            - image: circleci/node:13.12
        steps:
            - checkout
            - run: *install-deps
@@ -62,12 +70,14 @@ jobs:
                  name: Restore Yarn Package Cache
                  keys:
                      - yarn-packages-monorepo-root-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: yarn install
            - run:
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build All
                  # note: it should be possible also to run: yarn build,
                  # but for now we don't want parallel builds in Circle
                  command: yarn build:all
            - save_cache:
                  name: Save Yarn Package Cache
                  key: yarn-packages-monorepo-root-{{ checksum "yarn.lock" }}
@@ -81,7 +91,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/backend/api
        docker:
            - image: circleci/node:10.16.0
            - image: circleci/node:13.12
        steps:
            - checkout
            - run: *install-deps
@@ -96,11 +106,14 @@ jobs:
                  keys:
                      - yarn-packages-backend-api-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: cd backend/api && yarn install
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build Common Packages
                  command: yarn build:common
            - run:
                  name: Run Build
                  command: cd backend/api && yarn build
                  command: yarn build:server
            - save_cache:
                  name: Save Yarn Package Cache
                  key: yarn-packages-backend-api-{{ checksum "yarn.lock" }}
@@ -114,7 +127,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/admin/website-angular
        docker:
            - image: circleci/node:10.16.0
            - image: circleci/node:13.12
        steps:
            - checkout
            - run: *install-deps
@@ -129,11 +142,14 @@ jobs:
                  keys:
                      - yarn-packages-admin-website-angular-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: cd admin/website-angular && yarn install
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build Common Packages
                  command: yarn build:common
            - run:
                  name: Run Build
                  command: cd admin/website-angular && yarn build
                  command: yarn build:admin
            - save_cache:
                  name: Save Yarn Package Cache
                  key: yarn-packages-admin-website-angular-{{ checksum "yarn.lock" }}
@@ -147,7 +163,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/carrier/mobile-ionic
        docker:
            - image: circleci/android:api-28-node
            - image: circleci/android:api-29-node
        steps:
            - checkout
            - run: *install-deps
@@ -165,21 +181,21 @@ jobs:
                  keys:
                      - yarn-packages-carrier-mobile-ionic-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: cd carrier/mobile-ionic && yarn install
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build Common Packages
                  command: yarn build:common
            - run:
                  name: Run Build
                  command: cd carrier/mobile-ionic && yarn build
                  command: yarn build:carrier
            - run:
                  name: Run Ionic Build (Production)
                  command: cd carrier/mobile-ionic && yarn ionic:build:prod
            - run:
                  name: Remove old android platform
                  command: cd carrier/mobile-ionic && yarn ionic cordova platform rm android
                  command: cd packages/carrier-mobile-ionic && yarn ionic:build:prod
            - run:
                  name: Add new android platform
                  command: |
                    cd carrier/mobile-ionic 
                      cd packages/carrier-mobile-ionic 
                      yarn ionic cordova platform add android@8.0.0 --noresources
                      ionic config set -g telemetry true                    
                      # echo y | android update sdk --no-ui --all --filter tools,platform-tools,extra-google-m2repository,extra-google-google_play_services,extra-android-support,extra-android-m2repository,android-25
@@ -187,7 +203,7 @@ jobs:
            - run:
                  name: Run Cordova Build for Android (Debug)
                  command: |
                    cd carrier/mobile-ionic
                      cd packages/carrier-mobile-ionic
                      yarn cordova:build
                      mkdir -p /tmp/apk
                      cp -r platforms/android/app/build/outputs/apk/debug/app-debug.apk /tmp/apk/carrier.apk
@@ -207,7 +223,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/shop/mobile-ionic
        docker:
            - image: circleci/android:api-28-node
            - image: circleci/android:api-29-node
        steps:
            - checkout
            - run: *install-deps
@@ -225,21 +241,21 @@ jobs:
                  keys:
                      - yarn-packages-shop-mobile-ionic-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: cd shop/mobile-ionic && yarn install
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build Common Packages
                  command: yarn build:common
            - run:
                  name: Run Build
                  command: cd shop/mobile-ionic && yarn build
                  command: yarn build:shopmobile
            - run:
                  name: Run Ionic Build (Production)
                  command: cd shop/mobile-ionic && yarn ionic:build:prod
            - run:
                  name: Remove old android platform
                  command: cd shop/mobile-ionic && yarn ionic cordova platform rm android
                  command: cd packages/shop-mobile-ionic && yarn ionic:build:prod
            - run:
                  name: Add new android platform
                  command: |
                    cd shop/mobile-ionic
                      cd packages/shop-mobile-ionic
                      yarn ionic cordova platform add android@8.0.0 --noresources
                      ionic config set -g telemetry true                    
                      # echo y | android update sdk --no-ui --all --filter tools,platform-tools,extra-google-m2repository,extra-google-google_play_services,extra-android-support,extra-android-m2repository,android-25
@@ -247,7 +263,7 @@ jobs:
            - run:
                  name: Run Cordova Build for Android (Debug)
                  command: |
                    cd shop/mobile-ionic
                      cd packages/shop-mobile-ionic
                      yarn cordova:build
                      mkdir -p /tmp/apk
                      cp -r platforms/android/app/build/outputs/apk/debug/app-debug.apk /tmp/apk/shop.apk
@@ -267,7 +283,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/shop/website-angular
        docker:
            - image: circleci/node:10.16.0
            - image: circleci/node:13.12
        steps:
            - checkout
            - run: *install-deps
@@ -282,11 +298,14 @@ jobs:
                  keys:
                      - yarn-packages-shop-website-angular-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: cd shop/website-angular && yarn install
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build Common Packages
                  command: yarn build:common
            - run:
                  name: Run Build
                  command: cd shop/website-angular && yarn build
                  command: yarn build:shopweb
            - save_cache:
                  name: Save Yarn Package Cache
                  key: yarn-packages-shop-website-angular-{{ checksum "yarn.lock" }}
@@ -300,7 +319,7 @@ jobs:
        <<: *defaults
        working_directory: /tmp/workspace/merchant/tablet-ionic
        docker:
            - image: circleci/android:api-28-node
            - image: circleci/android:api-29-node
        steps:
            - checkout
            - run: *install-deps
@@ -318,21 +337,21 @@ jobs:
                  keys:
                      - yarn-packages-merchant-tablet-ionic-{{ checksum "yarn.lock" }}
            - run:
                  name: Install Dependencies
                  command: cd merchant/tablet-ionic && yarn install
                  name: Run Bootstrap
                  command: yarn bootstrap
            - run:
                  name: Run Build Common Packages
                  command: yarn build:common
            - run:
                  name: Run Build
                  command: cd merchant/tablet-ionic && yarn build
                  command: yarn build:merchant
            - run:
                  name: Run Ionic Build (Production)
                  command: cd merchant/tablet-ionic && yarn ionic:build:prod
            - run:
                  name: Remove old android platform
                  command: cd merchant/tablet-ionic && yarn ionic cordova platform rm android
                  command: cd packages/merchant-tablet-ionic && yarn ionic:build:prod
            - run:
                  name: Add new android platform
                  command: |
                    cd merchant/tablet-ionic
                      cd packages/merchant-tablet-ionic
                      yarn ionic cordova platform add android@8.0.0 --noresources
                      ionic config set -g telemetry true                    
                      # echo y | android update sdk --no-ui --all --filter tools,platform-tools,extra-google-m2repository,extra-google-google_play_services,extra-android-support,extra-android-m2repository,android-25
@@ -340,7 +359,7 @@ jobs:
            - run:
                  name: Run Cordova Build for Android (Debug)
                  command: |
                    cd merchant/tablet-ionic
                      cd packages/merchant-tablet-ionic
                      yarn cordova:build
                      mkdir -p /tmp/apk
                      cp -r platforms/android/app/build/outputs/apk/debug/app-debug.apk /tmp/apk/merchant.apk
+56 −0
Original line number Diff line number Diff line
# API

FROM node:alpine AS development

RUN apk update \
    && apk add libexecinfo libexecinfo-dev \
    && npm i -g npm \
    && apk --no-cache add --virtual builds-deps build-base \
    snappy g++ snappy-dev gcc libgcc libstdc++ linux-headers autoconf automake make nasm python git \
    && npm install --quiet node-gyp -g \ 
    && npm config set python /usr/bin/python \
    && npm install yarn -g	

RUN mkdir /srv/ever && chown node:node /srv/ever

USER node

WORKDIR /srv/ever

COPY --chown=node:node package.json yarn.lock ./
COPY --chown=node:node backend/api/package.json ./backend/api/package.json
COPY --chown=node:node .snyk ./.snyk
COPY --chown=node:node backend/api/.snyk ./backend/api/.snyk

RUN yarn install

RUN yarn --cwd ./backend/api install

FROM node:alpine AS production

ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.6.0/wait /wait

RUN npm install cross-env -g \
    && npm install pm2 -g --unsafe-perm \
    && chmod +x /wait

RUN mkdir /srv/ever && chown node:node /srv/ever
RUN mkdir -p /srv/ever/backend/api/build && chown node:node /srv/ever/backend/api/build

USER node

WORKDIR /srv/ever

ARG NODE_OPTIONS="--max-old-space-size=2048"
ENV NODE_OPTIONS $NODE_OPTIONS
ENV NODE_ENV production

COPY --from=development --chown=root:root /srv/ever/node_modules ./node_modules
COPY --from=development --chown=root:root /srv/ever/backend/api/node_modules ./backend/api/node_modules

COPY . .

EXPOSE 5500 5501 5050 5555

CMD /wait \
    && cross-env NODE_ENV=production NODE_OPTIONS=--max_old_space_size=2048 yarn --cwd ./backend/api node build/main.js
 No newline at end of file
+10 −2
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
/dist
/tmp
/out-tsc
/build

# dependencies
/node_modules
@@ -29,6 +30,8 @@
/libpeerconnection.log
npm-debug.log
yarn-debug.log
yarn-error.log
yarn.lock
testem.log
/typings

@@ -41,6 +44,11 @@ testem.log
Thumbs.db
/admin/website-angular/yarn-error.log

yarn.lock
/yarn-error.log
*.lerna_backup

/packages/core/tsconfig.build.tsbuildinfo
/packages/common-angular/*.tsbuildinfo
/packages/admin-web-angular/*.tsbuildinfo
/packages/common/*.tsbuildinfo
/packages/core/*.tsbuildinfo
/packages/shop-mobile-ionic/package-lock.json
+12 −12
Original line number Diff line number Diff line
@@ -12,12 +12,12 @@ node_js:
cache:
    directories:
        - node_modules
        - backend/api/node_modules
        - admin/website-angular/node_modules
        - carrier/mobile-ionic/node_modules
        - shop/mobile-ionic/node_modules
        - shop/website-angular/node_modules
        - merchant/tablet-ionic/node_modules
        - packages/core/node_modules
        - packages/admin-web-angular/node_modules
        - packages/carrier-mobile-ionic/node_modules
        - packages/shop-mobile-ionic/node_modules
        - packages/shop-web-angular/node_modules
        - packages/merchant-tablet-ionic/node_modules

addons:
    apt:
@@ -40,12 +40,12 @@ install:

matrix:
    include:
        # - env: PROJECT=backend/api
        # - env: PROJECT=admin/website-angular
        # - env: PROJECT=carrier/mobile-ionic
        # - env: PROJECT=shop/mobile-ionic
        # - env: PROJECT=shop/website-angular
        # - env: PROJECT=merchant/tablet-ionic
        - env: PROJECT=packages/core
        - env: PROJECT=packages/admin-web-angular
        - env: PROJECT=packages/carrier-mobile-ionic
        - env: PROJECT=packages/shop-mobile-ionic
        - env: PROJECT=packages/shop-web-angular
        - env: PROJECT=packages/merchant-tablet-ionic

before_script:
    - cd $PROJECT
+4 −1
Original line number Diff line number Diff line
@@ -62,5 +62,8 @@
		"xabikos.javascriptsnippets",
		"davidanson.vscode-markdownlint",
		"leizongmin.node-module-intellisense"
	]
	],
	"git.ignoreLimitWarning": true,
	"vsicons.presets.nestjs": true,
	"cSpell.words": ["envalid", "esnext", "inversify", "pyro", "typeorm"]
}
Loading