Skip to content

Commit

Permalink
Merge pull request #8695 from ever-co/stage
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
evereq authored Jan 3, 2025
2 parents 2126831 + 2d8877b commit 1451d4c
Show file tree
Hide file tree
Showing 4,599 changed files with 36,134 additions and 19,499 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
38 changes: 6 additions & 32 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ jobs:
command: nvm use v20.11.1 && node --version
- run:
name: Install Dependencies
command: nvm use v20.11.1 && yarn install
command: nvm use v20.11.1 && yarn bootstrap
no_output_timeout: 60m
- run:
name: Install Sonarqube scanner
Expand All @@ -101,10 +101,7 @@ jobs:
key: yarn-packages-sonarqube-root-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- persist_to_workspace:
root: /tmp/workspace/sonarqube-root
paths:
- '*'

build-monorepo-root:
<<: *defaults
machine:
Expand All @@ -131,10 +128,7 @@ jobs:
key: yarn-packages-monorepo-root-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- persist_to_workspace:
root: /tmp/workspace/monorepo-root
paths:
- '*'

build-desktop:
<<: *defaults
machine:
Expand Down Expand Up @@ -165,10 +159,7 @@ jobs:
key: yarn-packages-desktop-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- persist_to_workspace:
root: /tmp/workspace/desktop
paths:
- '*'

build-api:
<<: *defaults
machine:
Expand Down Expand Up @@ -203,10 +194,7 @@ jobs:
key: yarn-packages-api-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- persist_to_workspace:
root: /tmp/workspace/api
paths:
- '*'

build-web:
<<: *defaults
machine:
Expand Down Expand Up @@ -241,10 +229,6 @@ jobs:
key: yarn-packages-web-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- persist_to_workspace:
root: /tmp/workspace/web
paths:
- '*'

test-e2e:
<<: *defaults
Expand Down Expand Up @@ -289,11 +273,6 @@ jobs:
name: Kill API Background Process
command: pgrep node &> /dev/null && killall -w node || true

- persist_to_workspace:
root: /tmp/workspace/test-e2e
paths:
- '*'

pulumi_deploy:
<<: *defaults
machine:
Expand Down Expand Up @@ -321,7 +300,7 @@ jobs:
name: 'Installing NPM Packages'
command: |
nvm use v20.11.1
yarn bootstrap
yarn install --ignore-scripts && yarn postinstall.manual
no_output_timeout: 60m

- pulumi/update:
Expand All @@ -333,11 +312,6 @@ jobs:
paths:
- ~/.cache/yarn

- persist_to_workspace:
root: /tmp/workspace/pulumi
paths:
- '*'

workflows:
version: 2
build:
Expand Down
20 changes: 19 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,25 @@
"wdth",
"concate",
"typeahead",
"maxlength"
"maxlength",
"xplatframework",
"localforage",
"longform",
"rfdc",
"libx264",
"libx",
"WXGA",
"SXGA",
"UXGA",
"NTSC",
"libvpx",
"libaom",
"theora",
"Theora",
"Unregisters",
"allwindows",
"Johndoe",
"minizlib"
],
"useGitignore": true,
"ignorePaths": [
Expand Down
105 changes: 62 additions & 43 deletions .deploy/api/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ ARG REDIS_URL
FROM node:20.11.1-alpine3.19 AS dependencies

LABEL maintainer="[email protected]"
LABEL org.opencontainers.image.source https://github.com/ever-co/ever-gauzy
LABEL org.opencontainers.image.source="https://github.com/ever-co/ever-gauzy"

ENV CI=true

Expand All @@ -117,7 +117,7 @@ ENV NODE_ENV=development
# Set Python interpreter for `node-gyp` to use
ENV PYTHON /usr/bin/python

RUN apk --update add bash && npm i -g npm \
RUN apk --update add bash && npm i -g npm@9 \
&& apk add --no-cache --virtual build-dependencies bind-tools curl tar xz jq python3 python3-dev py3-configobj py3-pip py3-setuptools build-base \
snappy libheif dos2unix gcc g++ snappy-dev git libgcc libstdc++ linux-headers autoconf automake make nasm vips-dev vips

Expand All @@ -139,51 +139,38 @@ USER node:node

WORKDIR /srv/gauzy

COPY --chown=node:node apps/gauzy/package.json ./apps/gauzy/
COPY --chown=node:node apps/api/package.json ./apps/api/

COPY --chown=node:node packages/common/package.json ./packages/common/
COPY --chown=node:node packages/common-angular/package.json ./packages/common-angular/
COPY --chown=node:node packages/utils/package.json ./packages/utils/
COPY --chown=node:node packages/config/package.json ./packages/config/
COPY --chown=node:node packages/contracts/package.json ./packages/contracts/
COPY --chown=node:node packages/auth/package.json ./packages/auth/
COPY --chown=node:node packages/core/package.json ./packages/core/
COPY --chown=node:node packages/plugin/package.json ./packages/plugin/
COPY --chown=node:node packages/plugins/integration-ai-ui/package.json ./packages/plugins/integration-ai-ui/
COPY --chown=node:node packages/plugins/integration-ai/package.json ./packages/plugins/integration-ai/
COPY --chown=node:node packages/plugins/integration-hubstaff-ui/package.json ./packages/plugins/integration-hubstaff-ui/
COPY --chown=node:node packages/plugins/integration-hubstaff/package.json ./packages/plugins/integration-hubstaff/
COPY --chown=node:node packages/plugins/integration-upwork-ui/package.json ./packages/plugins/integration-upwork-ui/
COPY --chown=node:node packages/plugins/integration-upwork/package.json ./packages/plugins/integration-upwork/
COPY --chown=node:node packages/plugins/integration-github/package.json ./packages/plugins/integration-github/
COPY --chown=node:node packages/plugins/integration-github-ui/package.json ./packages/plugins/integration-github-ui/
COPY --chown=node:node packages/plugins/integration-jira/package.json ./packages/plugins/integration-jira/
COPY --chown=node:node packages/plugins/jitsu-analytics/package.json ./packages/plugins/jitsu-analytics/
COPY --chown=node:node packages/plugins/sentry-tracing/package.json ./packages/plugins/sentry-tracing/
COPY --chown=node:node packages/plugins/product-reviews/package.json ./packages/plugins/product-reviews/
COPY --chown=node:node packages/plugins/videos/package.json ./packages/plugins/videos/
COPY --chown=node:node packages/plugins/knowledge-base/package.json ./packages/plugins/knowledge-base/
COPY --chown=node:node packages/plugins/changelog/package.json ./packages/plugins/changelog/
COPY --chown=node:node packages/plugins/job-search/package.json ./packages/plugins/job-search/
COPY --chown=node:node packages/plugins/job-proposal/package.json ./packages/plugins/job-proposal/
COPY --chown=node:node packages/plugins/job-employee-ui/package.json ./packages/plugins/job-employee-ui/
COPY --chown=node:node packages/plugins/job-matching-ui/package.json ./packages/plugins/job-matching-ui/
COPY --chown=node:node packages/plugins/job-proposal-ui/package.json ./packages/plugins/job-proposal-ui/
COPY --chown=node:node packages/plugins/job-search-ui/package.json ./packages/plugins/job-search-ui/
COPY --chown=node:node packages/plugins/legal-ui/package.json ./packages/plugins/legal-ui/
COPY --chown=node:node packages/plugins/maintenance-ui/package.json ./packages/plugins/maintenance-ui/
COPY --chown=node:node packages/plugins/onboarding-ui/package.json ./packages/plugins/onboarding-ui/
COPY --chown=node:node packages/plugins/public-layout-ui/package.json ./packages/plugins/public-layout-ui/
COPY --chown=node:node packages/ui-core/package.json ./packages/ui-core/
COPY --chown=node:node packages/ui-config/package.json ./packages/ui-config/
COPY --chown=node:node packages/ui-auth/package.json ./packages/ui-auth/

# We do not build here Wakatime plugin, because it used in Desktop Apps for now
# COPY --chown=node:node packages/plugins/integration-wakatime/package.json ./packages/plugins/integration-wakatime/

COPY --chown=node:node decorate-angular-cli.js lerna.json package.json yarn.lock ./
COPY --chown=node:node .scripts/postinstall.ts ./.scripts/

RUN yarn install --network-timeout 1000000 --frozen-lockfile
# RUN apk del build-dependencies make gcc g++ python2 py2-setuptools vips-dev
RUN yarn install --network-timeout 1000000 --frozen-lockfile --ignore-scripts
RUN yarn postinstall.manual
RUN yarn cache clean

FROM node:20.11.1-alpine3.19 AS prodDependencies

Expand All @@ -195,7 +182,7 @@ ARG NODE_ENV
# Set Python interpreter for `node-gyp` to use
ENV PYTHON /usr/bin/python

RUN apk --update add bash && npm i -g npm \
RUN apk --update add bash && npm i -g npm@9 \
&& apk add --no-cache --virtual build-dependencies bind-tools curl tar xz jq python3 python3-dev py3-configobj py3-pip py3-setuptools build-base \
snappy libheif dos2unix gcc g++ snappy-dev git libgcc libstdc++ linux-headers autoconf automake make nasm vips-dev vips

Expand All @@ -217,49 +204,43 @@ WORKDIR /srv/gauzy
COPY --chown=node:node apps/api/package.json ./apps/api/

COPY --chown=node:node packages/common/package.json ./packages/common/
COPY --chown=node:node packages/utils/package.json ./packages/utils/
COPY --chown=node:node packages/config/package.json ./packages/config/
COPY --chown=node:node packages/contracts/package.json ./packages/contracts/
COPY --chown=node:node packages/auth/package.json ./packages/auth/
COPY --chown=node:node packages/core/package.json ./packages/core/
COPY --chown=node:node packages/plugin/package.json ./packages/plugin/
COPY --chown=node:node packages/plugins/integration-ai-ui/package.json ./packages/plugins/integration-ai-ui/
COPY --chown=node:node packages/plugins/integration-ai/package.json ./packages/plugins/integration-ai/
COPY --chown=node:node packages/plugins/integration-hubstaff-ui/package.json ./packages/plugins/integration-hubstaff-ui/
COPY --chown=node:node packages/plugins/integration-hubstaff/package.json ./packages/plugins/integration-hubstaff/
COPY --chown=node:node packages/plugins/integration-upwork-ui/package.json ./packages/plugins/integration-upwork-ui/
COPY --chown=node:node packages/plugins/integration-upwork/package.json ./packages/plugins/integration-upwork/
COPY --chown=node:node packages/plugins/integration-github/package.json ./packages/plugins/integration-github/
COPY --chown=node:node packages/plugins/integration-github-ui/package.json ./packages/plugins/integration-github-ui/
COPY --chown=node:node packages/plugins/integration-jira/package.json ./packages/plugins/integration-jira/
COPY --chown=node:node packages/plugins/jitsu-analytics/package.json ./packages/plugins/jitsu-analytics/
COPY --chown=node:node packages/plugins/sentry-tracing/package.json ./packages/plugins/sentry-tracing/
COPY --chown=node:node packages/plugins/product-reviews/package.json ./packages/plugins/product-reviews/
COPY --chown=node:node packages/plugins/videos/package.json ./packages/plugins/videos/
COPY --chown=node:node packages/plugins/knowledge-base/package.json ./packages/plugins/knowledge-base/
COPY --chown=node:node packages/plugins/changelog/package.json ./packages/plugins/changelog/
COPY --chown=node:node packages/plugins/job-search/package.json ./packages/plugins/job-search/
COPY --chown=node:node packages/plugins/job-proposal/package.json ./packages/plugins/job-proposal/
COPY --chown=node:node packages/plugins/job-employee-ui/package.json ./packages/plugins/job-employee-ui/
COPY --chown=node:node packages/plugins/job-matching-ui/package.json ./packages/plugins/job-matching-ui/
COPY --chown=node:node packages/plugins/job-proposal-ui/package.json ./packages/plugins/job-proposal-ui/
COPY --chown=node:node packages/plugins/job-search-ui/package.json ./packages/plugins/job-search-ui/
COPY --chown=node:node packages/plugins/public-layout-ui/package.json ./packages/plugins/public-layout-ui/
COPY --chown=node:node packages/plugins/legal-ui/package.json ./packages/plugins/legal-ui/
COPY --chown=node:node packages/plugins/maintenance-ui/package.json ./packages/plugins/maintenance-ui/
COPY --chown=node:node packages/plugins/onboarding-ui/package.json ./packages/plugins/onboarding-ui/
COPY --chown=node:node packages/ui-core/package.json ./packages/ui-core/
COPY --chown=node:node packages/ui-config/package.json ./packages/ui-config/
COPY --chown=node:node packages/ui-auth/package.json ./packages/ui-auth/

# We do not build here Wakatime plugin, because it used in Desktop Apps for now
# COPY --chown=node:node packages/plugins/integration-wakatime/package.json ./packages/plugins/integration-wakatime/

COPY --chown=node:node package.json yarn.lock ./
COPY --chown=node:node decorate-angular-cli.js lerna.json package.json yarn.lock ./
COPY --chown=node:node .scripts/postinstall.ts ./.scripts/

RUN yarn install --network-timeout 1000000 --frozen-lockfile --production
# RUN apk del build-dependencies make gcc g++ python2 py2-setuptools vips-dev
RUN yarn install --network-timeout 1000000 --frozen-lockfile --ignore-scripts --production
RUN yarn postinstall.manual
RUN yarn cache clean

# We remove Angular modules as it's not used in APIs
RUN rm -r node_modules/@angular

# Exclude @gauzy directories before copying because we copy
# those within custom webpack in apps/api/config/custom-webpack.config.js
# RUN rm -r node_modules/@gauzy

FROM node:20.11.1-alpine3.19 AS development

USER node:node
Expand Down Expand Up @@ -289,7 +270,7 @@ ARG NODE_ENV
ARG DEMO
ARG NODE_OPTIONS

ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=30000"}
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=60000"}
ENV NODE_ENV=${NODE_ENV}
ENV DEMO=${DEMO:-false}

Expand All @@ -299,19 +280,22 @@ ENV IS_DOCKER=true
ENV NX_NO_CLOUD=true

RUN if [ "$NODE_ENV" = "production" ]; then \
yarn build:package:api:prod; \
yarn build:package:api:docker; \
else \
yarn build:package:api; \
fi

RUN yarn build:api:prod:docker

# Exclude @gauzy directories before copying because we copy
# those within custom webpack in apps/api/config/custom-webpack.config.js
# RUN rm -r dist/apps/api/node_modules/@gauzy

FROM node:20.11.1-alpine3.19 AS production

WORKDIR /srv/gauzy

COPY --chown=node:node --from=dependencies /wait /entrypoint.prod.sh /entrypoint.compose.sh ./
COPY --chown=node:node --from=prodDependencies /srv/gauzy/node_modules/ ./node_modules/
COPY --chown=node:node --from=build /srv/gauzy/packages/ ./packages/

# Copy static assets files which used for example in the seeds (e.g. images for features, reports, screenshots)
Expand All @@ -327,6 +311,11 @@ COPY --chown=node:node apps/api/src/assets/seed apps/api/public

COPY --chown=node:node --from=build /srv/gauzy/dist/apps/api .

# Copy node_modules to a temporary location
COPY --chown=node:node --from=prodDependencies /srv/gauzy/node_modules /tmp/node_modules_temp
# Add a script to merge directories inside the container (skip files that already exists)
RUN cp -rn /tmp/node_modules_temp/* ./node_modules/ && rm -rf /tmp/node_modules_temp

RUN npm install [email protected] -g && \
mkdir /import && chown node:node /import && \
touch ormlogs.log && chown node:node ormlogs.log && chown node:node wait && \
Expand All @@ -335,14 +324,44 @@ RUN npm install [email protected] -g && \
# Clean up
RUN yarn cache clean

# we need node_modules inside each @gauzy package
RUN cp -r ./packages/auth/node_modules ./node_modules/@gauzy/auth/
RUN cp -r ./packages/common/node_modules ./node_modules/@gauzy/common/
RUN cp -r ./packages/utils/node_modules ./node_modules/@gauzy/utils/
RUN cp -r ./packages/config/node_modules ./node_modules/@gauzy/config/
RUN cp -r ./packages/contracts/node_modules ./node_modules/@gauzy/contracts/
RUN cp -r ./packages/core/node_modules ./node_modules/@gauzy/core/

RUN cp -r ./packages/plugins/changelog/node_modules ./node_modules/@gauzy/plugin-changelog/
RUN cp -r ./packages/plugins/integration-ai/node_modules ./node_modules/@gauzy/plugin-integration-ai/
RUN cp -r ./packages/plugins/integration-github/node_modules ./node_modules/@gauzy/plugin-integration-github/
RUN cp -r ./packages/plugins/integration-hubstaff/node_modules ./node_modules/@gauzy/plugin-integration-hubstaff/
RUN cp -r ./packages/plugins/integration-jira/node_modules ./node_modules/@gauzy/plugin-integration-jira/
RUN cp -r ./packages/plugins/integration-upwork/node_modules ./node_modules/@gauzy/plugin-integration-upwork/
RUN cp -r ./packages/plugins/jitsu-analytics/node_modules ./node_modules/@gauzy/plugin-jitsu-analytics/
RUN cp -r ./packages/plugins/job-proposal/node_modules ./node_modules/@gauzy/plugin-job-proposal/
RUN cp -r ./packages/plugins/job-search/node_modules ./node_modules/@gauzy/plugin-job-search/
RUN cp -r ./packages/plugins/knowledge-base/node_modules ./node_modules/@gauzy/plugin-knowledge-base/
RUN cp -r ./packages/plugins/product-reviews/node_modules ./node_modules/@gauzy/plugin-product-reviews/
RUN cp -r ./packages/plugins/sentry-tracing/node_modules ./node_modules/@gauzy/plugin-sentry/
RUN cp -r ./packages/plugins/videos/node_modules ./node_modules/@gauzy/plugin-videos/

# We do not copy node_modules here for Wakatime plugin, because it used in Desktop Apps for now
# RUN cp -r ./packages/plugins/integration-wakatime/node_modules ./node_modules/@gauzy/plugin-integration-wakatime/

# we don't need packages folder anymore
RUN rm -rf ./packages

USER node:node

ENV CI=true

ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=12288"}
ENV NODE_ENV=${NODE_ENV:-production}

ENV API_HOST=${API_HOST:-api}
ENV API_PORT=${API_PORT:-3000}

ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000}
ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200}
ENV SENTRY_DSN=${SENTRY_DSN}
Expand Down
11 changes: 5 additions & 6 deletions .deploy/desktop-timer/Dockerfile.linux
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM node:buster-slim as linux

RUN mkdir -p /opt/src && chown -R node:node /opt/src && \
apt update && apt install -y --no-install-recommends \
curl gnupg git libappindicator3-1 ca-certificates binutils \
icnsutils graphicsmagick
apt update && apt install -y --no-install-recommends \
curl gnupg git libappindicator3-1 ca-certificates binutils \
icnsutils graphicsmagick

WORKDIR /opt/src

Expand All @@ -13,12 +13,11 @@ COPY --chown=node:node package.json yarn.lock ./

USER node:node

RUN yarn install --network-timeout 1000000 --frozen-lockfile
RUN yarn install --network-timeout 1000000 --frozen-lockfile --ignore-scripts
RUN yarn postinstall.manual

COPY --chown=node:node . .

RUN yarn bootstrap

RUN yarn build:desktop-timer:linux

FROM debian:buster-slim
Expand Down
Loading

0 comments on commit 1451d4c

Please sign in to comment.