🐳 Deploy image to the internal docker registry
* Deploy the image to the internal docker registry * Removed unnecessary stage in backend build
This commit is contained in:
@@ -27,13 +27,4 @@ jobs:
|
||||
run: cd twake && docker-compose -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=mongodb -e DB_DRIVER=mongodb -e PUBSUB_TYPE=local node npm run test:e2e
|
||||
- name: e2e-cassandra-test
|
||||
run: cd twake && docker-compose -f docker-compose.tests.yml up -d scylladb elasticsearch rabbitmq && sleep 60 && docker-compose -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=elasticsearch -e DB_DRIVER=cassandra node npm run test:e2e
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cd twake && mv docker-compose.tests.yml docker-compose.yml
|
||||
- run: cd twake && docker-compose up -d
|
||||
- run: cd twake && docker-compose exec -T php php composer.phar install
|
||||
- run: cd twake && docker-compose exec -T php php bin/console twake:schema:update #Test if scylla is live
|
||||
- run: cd twake && docker-compose exec -T php php bin/console twake:mapping #Test if es is live
|
||||
- run: cd twake && docker-compose exec -T php php bin/console twake:init #Test in we can do things
|
||||
|
||||
|
||||
@@ -7,14 +7,14 @@ on:
|
||||
- "twake/docker/**"
|
||||
|
||||
jobs:
|
||||
build-nginx:
|
||||
build-frontend:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cd twake && docker build -t twaketech/tdrive-nginx -f docker/twake-nginx/Dockerfile .
|
||||
- run: cd twake && docker build -t tdrive/tdrive-frontend -f docker/tdrive-frontend/Dockerfile .
|
||||
|
||||
build-node:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: cd twake && docker build --target production -t twaketech/tdrive-node -f docker/twake-node/Dockerfile .
|
||||
- run: cd twake && docker build --target production -t docker-registry.linagora.com/tdrive/tdrive-node -f docker/tdrive-node/Dockerfile .
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
name: integration-test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "twake/**"
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: build
|
||||
run: cd twake && docker build -t integration-test -f docker/integration-test/Dockerfile .
|
||||
- name: build-node
|
||||
run: cd twake && docker build -t twaketech/tdrive-node -f docker/twake-node/Dockerfile .
|
||||
- name: run-twake-instance
|
||||
run: cd twake && docker-compose -f docker-compose.onpremise.mongo.yml up -d && sleep 60
|
||||
- name: get-logs
|
||||
run: cd twake && docker-compose -f docker-compose.onpremise.mongo.yml logs && curl http://localhost:3000
|
||||
- name: run integration-test
|
||||
run: cd twake && docker run --network host -e SERVER=http://localhost:3000 integration-test
|
||||
@@ -10,10 +10,11 @@ on:
|
||||
- ".github/workflows/**"
|
||||
|
||||
jobs:
|
||||
deploy-node:
|
||||
publish-node:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- run: 'echo "DOCKERTAGVERSION=2023.Q1.1223" >> $GITHUB_ENV'
|
||||
- name: "Setup version"
|
||||
run: 'echo "DOCKERTAGVERSION=2023.Q1.1223" >> $GITHUB_ENV'
|
||||
- name: Set env to develop
|
||||
if: endsWith(github.ref, '/develop')
|
||||
run: 'echo "DOCKERTAG=develop" >> $GITHUB_ENV; echo "DOCKERTAGVERSION=2023.Q1.1223" >> $GITHUB_ENV'
|
||||
@@ -26,15 +27,19 @@ jobs:
|
||||
- name: Set env to production
|
||||
if: endsWith(github.ref, '/main')
|
||||
run: 'echo "DOCKERTAG=latest" >> $GITHUB_ENV'
|
||||
- name: "Push to the registry following labels:"
|
||||
run: |
|
||||
echo "${{ env.DOCKERTAG }},${{ env.DOCKERTAGVERSION }}"
|
||||
- uses: actions/checkout@v2
|
||||
- name: Publish to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
uses: elgohr/Publish-Docker-Github-Action@v5
|
||||
with:
|
||||
name: twaketech/tdrive-node
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
name: tdrive/tdrive-node
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
workdir: twake
|
||||
registry: docker-registry.linagora.com
|
||||
context: .
|
||||
target: production
|
||||
buildoptions: "-t twaketech/tdrive-node -f docker/twake-node/Dockerfile"
|
||||
buildoptions: "-t docker-registry.linagora.com/tdrive/tdrive-node -f docker/tdrive-node/Dockerfile"
|
||||
tags: "${{ env.DOCKERTAG }},${{ env.DOCKERTAGVERSION }}"
|
||||
@@ -1,4 +1,4 @@
|
||||
name: update-saas-frontend
|
||||
name: publish-frontend
|
||||
|
||||
# Edit with caution ! Made for build+test on "feature/*" push and pull requests events
|
||||
# And for only deploying on pushes on "main" branch
|
||||
@@ -43,8 +43,8 @@ jobs:
|
||||
name: frontend-build
|
||||
path: twake/frontend/build/
|
||||
|
||||
deploy-nginx:
|
||||
needs: build-frontend
|
||||
publish-frontend:
|
||||
# needs: build-frontend
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/qa' || github.ref == 'refs/heads/canary'
|
||||
steps:
|
||||
@@ -63,11 +63,12 @@ jobs:
|
||||
run: 'echo "DOCKERTAG=latest" >> $GITHUB_ENV'
|
||||
- uses: actions/checkout@v2
|
||||
- name: Publish to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
uses: elgohr/Publish-Docker-Github-Action@v5
|
||||
with:
|
||||
name: twaketech/tdrive-nginx
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
name: tdrive/tdrive-frontend
|
||||
registry: docker-registry.linagora.com
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
workdir: twake
|
||||
buildoptions: "-t twaketech/tdrive-nginx -f docker/twake-nginx/Dockerfile"
|
||||
buildoptions: "-t docker-registry.linagora.com/tdrive/tdrive-frontend -f docker/tdrive-frontend/Dockerfile"
|
||||
tags: "${{ env.DOCKERTAG }},${{ env.DOCKERTAGVERSION }}"
|
||||
@@ -9,10 +9,10 @@ services:
|
||||
ports:
|
||||
- 27017:27017
|
||||
networks:
|
||||
- twake_network
|
||||
- tdrive_network
|
||||
|
||||
node:
|
||||
image: twaketech/twake-node
|
||||
image: tdrive/tdrive-node
|
||||
container_name: node
|
||||
ports:
|
||||
- 4000:3000
|
||||
@@ -26,7 +26,7 @@ services:
|
||||
- STATIC_ROOT=/frontend
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/twake-node/Dockerfile
|
||||
dockerfile: docker/tdrive-node/Dockerfile
|
||||
target: development
|
||||
volumes:
|
||||
- ./backend/node:/usr/src/app
|
||||
@@ -37,9 +37,9 @@ services:
|
||||
links:
|
||||
- mongo
|
||||
networks:
|
||||
- twake_network
|
||||
- tdrive_network
|
||||
|
||||
networks:
|
||||
twake_network:
|
||||
tdrive_network:
|
||||
driver: bridge
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ services:
|
||||
- 5672:5672
|
||||
- 15672:15672
|
||||
node:
|
||||
image: twaketech/twake-node:test
|
||||
image: tdrive/tdrive-node:test
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/twake-node/Dockerfile
|
||||
dockerfile: docker/tdrive-node/Dockerfile
|
||||
target: test
|
||||
environment:
|
||||
- NODE_ENV=test
|
||||
|
||||
@@ -11,11 +11,11 @@ services:
|
||||
ports:
|
||||
- 27017:27017
|
||||
node:
|
||||
image: twaketech/twake-node:test
|
||||
image: tdrive/tdrive-node:test
|
||||
container_name: node-test
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/twake-node/Dockerfile
|
||||
dockerfile: docker/tdrive-node/Dockerfile
|
||||
target: test
|
||||
environment:
|
||||
- NODE_ENV=test
|
||||
|
||||
@@ -12,7 +12,7 @@ services:
|
||||
image: rabbitmq:3
|
||||
|
||||
node:
|
||||
image: twaketech/twake-node
|
||||
image: tdrive/tdrive-node
|
||||
ports:
|
||||
- 9229:9229
|
||||
environment:
|
||||
@@ -23,7 +23,7 @@ services:
|
||||
- PUBSUB_URLS=amqp://guest:guest@rabbitmq:5672
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/twake-node/Dockerfile
|
||||
dockerfile: docker/tdrive-node/Dockerfile
|
||||
target: development
|
||||
volumes:
|
||||
- ./backend/node:/usr/src/app
|
||||
@@ -36,25 +36,7 @@ services:
|
||||
- scylladb
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
php:
|
||||
image: twaketech/twake-php
|
||||
environment:
|
||||
- DEV=dev
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/twake-php/Dockerfile
|
||||
volumes:
|
||||
- ./backend/core/:/twake-core:cached
|
||||
- ./docker-data/drive/:/twake-core/drive/
|
||||
- ./docker-data/fpm/:/etc/docker-data/fpm/
|
||||
- ./docker-data/drive-preview/:/twake-core/web/medias/
|
||||
- ./docker-data/uploads/:/twake-core/web/upload/
|
||||
depends_on:
|
||||
- scylladb
|
||||
- rabbitmq
|
||||
- elasticsearch
|
||||
links:
|
||||
- scylladb
|
||||
|
||||
elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4
|
||||
environment:
|
||||
@@ -70,12 +52,12 @@ services:
|
||||
- ./docker-data/es:/usr/share/elasticsearch/data
|
||||
|
||||
nginx:
|
||||
image: twaketech/twake-nginx
|
||||
image: tdrive/tdrive-frontend
|
||||
environment:
|
||||
- DEV=dev
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/twake-nginx/Dockerfile
|
||||
dockerfile: docker/tdrive-frontend/Dockerfile
|
||||
ports:
|
||||
- 8000:80
|
||||
depends_on:
|
||||
|
||||
@@ -8,7 +8,7 @@ services:
|
||||
- ./docker-data/mongo:/data/db
|
||||
|
||||
node:
|
||||
image: twaketech/twake-node:latest
|
||||
image: tdrive/tdrive-node:latest
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 8000:3000
|
||||
|
||||
@@ -25,7 +25,7 @@ services:
|
||||
node:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/twake-node/Dockerfile
|
||||
dockerfile: docker/tdrive-node/Dockerfile
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PUBSUB_URLS=amqp://guest:guest@rabbitmq:5672
|
||||
@@ -38,29 +38,11 @@ services:
|
||||
rabbitmq:
|
||||
condition: service_healthy
|
||||
|
||||
php:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/twake-php/Dockerfile
|
||||
environment:
|
||||
- DEV=production
|
||||
volumes:
|
||||
- ./default-configuration/backend/Parameters.php:/configuration/Parameters.php
|
||||
- ./connectors/:/twake-core/src/BuiltInConnectors/Connectors
|
||||
- ./docker-data/drive/:/twake-core/drive/
|
||||
- ./docker-data/fpm/:/etc/docker-data/fpm/
|
||||
- ./docker-data/drive-preview/:/twake-core/web/medias/
|
||||
- ./docker-data/uploads/:/twake-core/web/upload/
|
||||
depends_on:
|
||||
scylladb:
|
||||
condition: service_healthy
|
||||
rabbitmq:
|
||||
condition: service_healthy
|
||||
|
||||
nginx:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/twake-nginx/Dockerfile
|
||||
dockerfile: docker/tdrive-frontend/Dockerfile
|
||||
environment:
|
||||
- DEV=production
|
||||
- SSL_CERTS=selfsigned
|
||||
|
||||
@@ -25,10 +25,10 @@ services:
|
||||
environment:
|
||||
- REDIS_REPLICATION_MODE=master
|
||||
node:
|
||||
image: twaketech/twake-node:test
|
||||
image: tdrive/tdrive-node:test
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/twake-node/Dockerfile
|
||||
dockerfile: docker/tdrive-node/Dockerfile
|
||||
target: test
|
||||
volumes:
|
||||
- ./coverage/:/usr/src/app/coverage/
|
||||
@@ -47,18 +47,7 @@ services:
|
||||
- mongo
|
||||
- scylladb
|
||||
- rabbitmq
|
||||
php:
|
||||
image: twaketech/twake-php
|
||||
volumes:
|
||||
- ./backend/core/:/twake-core:cached
|
||||
- ./docker-data/drive/:/twake-core/drive/
|
||||
- ./docker-data/fpm/:/etc/docker-data/fpm/
|
||||
depends_on:
|
||||
- scylladb
|
||||
- rabbitmq
|
||||
- elasticsearch
|
||||
links:
|
||||
- scylladb
|
||||
|
||||
elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4
|
||||
environment:
|
||||
@@ -72,8 +61,9 @@ services:
|
||||
hard: -1
|
||||
ports:
|
||||
- 9200:9200
|
||||
|
||||
nginx:
|
||||
image: twaketech/twake-nginx
|
||||
image: tdrive/tdrive-frontend
|
||||
ports:
|
||||
- 8000:80
|
||||
links:
|
||||
|
||||
@@ -16,11 +16,11 @@ RUN cp /twake-react/src/app/environment/environment.ts.dist /twake-react/src/app
|
||||
|
||||
# Second stage: configuring nginx and copying build artifacts
|
||||
FROM nginx:latest
|
||||
COPY docker/twake-nginx/nginx.conf /etc/nginx/nginx.conf
|
||||
COPY docker/twake-nginx/site.conf /etc/nginx/sites-available/site.template
|
||||
COPY docker/twake-nginx/redirect.conf /etc/nginx/sites-available/redirect
|
||||
COPY docker/twake-nginx/entrypoint.sh /
|
||||
COPY docker/twake-nginx/self-signed.sh /usr/local/bin/
|
||||
COPY docker/tdrive-frontend/nginx.conf /etc/nginx/nginx.conf
|
||||
COPY docker/tdrive-frontend/site.conf /etc/nginx/sites-available/site.template
|
||||
COPY docker/tdrive-frontend/redirect.conf /etc/nginx/sites-available/redirect
|
||||
COPY docker/tdrive-frontend/entrypoint.sh /
|
||||
COPY docker/tdrive-frontend/self-signed.sh /usr/local/bin/
|
||||
COPY --from=build /twake-react /twake-react
|
||||
|
||||
RUN chmod +x /entrypoint.sh && rm /etc/nginx/conf.d/default.conf
|
||||
@@ -12,7 +12,7 @@ RUN apt-get update && \
|
||||
# RUN ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
|
||||
|
||||
|
||||
### Install Twake
|
||||
### Install TDrive
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY backend/node/package*.json ./
|
||||
@@ -24,7 +24,7 @@ RUN npm install
|
||||
COPY backend/node/ .
|
||||
|
||||
# Add frontend Stage
|
||||
FROM node-base as with-frontend
|
||||
FROM node-base as installed-libs
|
||||
|
||||
COPY backend/node/ .
|
||||
#Install dev dependancies for build
|
||||
@@ -36,22 +36,8 @@ RUN NODE_ENV=development npm install && \
|
||||
#Install prod dependancies after build
|
||||
npm install --legacy-peer-deps
|
||||
|
||||
# Add frontend into node
|
||||
COPY frontend/ ../public_build/
|
||||
RUN export NODE_ENV=development && \
|
||||
apt-get install -y build-essential && \
|
||||
cd ../public_build/ && \
|
||||
yarn install --network-timeout 1000000000 && \
|
||||
yarn global add webpack webpack-cli jest && \
|
||||
cp src/app/environment/environment.ts.dist src/app/environment/environment.ts && \
|
||||
export NODE_ENV=production && \
|
||||
yarn build && \
|
||||
rm -R node_modules && \
|
||||
mv build/* ../app/public && \
|
||||
cd .. && rm -R public_build/
|
||||
|
||||
# Development Stage
|
||||
FROM with-frontend as development
|
||||
FROM installed-libs as development
|
||||
|
||||
ENV NODE_ENV=development
|
||||
RUN npm install -g pino-pretty && \
|
||||
@@ -60,7 +46,7 @@ RUN npm install -g pino-pretty && \
|
||||
CMD ["npm", "run", "dev:debug"]
|
||||
|
||||
# Production Stage
|
||||
FROM with-frontend as production
|
||||
FROM installed-libs as production
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["npm", "run", "serve"]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,8 +14,8 @@ const files = [
|
||||
"frontend/src/app/environment/version.ts",
|
||||
"backend/core/src/Twake/Core/Controller/Version.php",
|
||||
"backend/node/src/version.ts",
|
||||
"../.github/workflows/saas-update-backend.yml",
|
||||
"../.github/workflows/saas-update-front.yml",
|
||||
"../.github/workflows/publish-backend.yml",
|
||||
"../.github/workflows/publish-frontend.yml",
|
||||
];
|
||||
|
||||
var fs = require("fs");
|
||||
|
||||
Reference in New Issue
Block a user