Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6335b425f7 | ||
|
|
c198419f58 | ||
|
|
39ae214f78 | ||
|
|
28d90e66dd | ||
|
|
d1fa4044e1 | ||
|
|
181eb1ae4a | ||
|
|
9d15c7dfa3 | ||
|
|
2d1fb8759a | ||
|
|
df45862a27 | ||
|
|
3670516270 | ||
|
|
16a0145a4f | ||
|
|
62385a9bf6 | ||
|
|
320bd0974e | ||
|
|
882efd42bf | ||
|
|
3eee533f66 | ||
|
|
51251e2390 | ||
|
|
4485ce3f04 | ||
|
|
f0b852d5cd | ||
|
|
466b82d174 | ||
|
|
247f2eae1c | ||
|
|
8680677903 | ||
|
|
24eae0d590 | ||
|
|
ef6a11dd35 | ||
|
|
12aeb5573e | ||
|
|
65db761a81 | ||
|
|
ecc6bcb233 | ||
|
|
c55d5e51d7 | ||
|
|
85964ad5e7 | ||
|
|
14839ad79b | ||
|
|
ae97e3317b | ||
|
|
539d3499a8 | ||
|
|
c4f8bc3a0c | ||
|
|
fce18a4da1 | ||
|
|
29faddbe2b | ||
|
|
110033155f | ||
|
|
3f809eacfc | ||
|
|
b9cbb24bf1 | ||
|
|
a57233ba31 | ||
|
|
27b8229b99 | ||
|
|
f4704af0ec | ||
|
|
3725de1d31 | ||
|
|
56da48d1b0 | ||
|
|
4ddd2cfb37 |
@@ -6,8 +6,6 @@ stages:
|
|||||||
|
|
||||||
variables:
|
variables:
|
||||||
DOCKER_REGISTRY: "docker.io"
|
DOCKER_REGISTRY: "docker.io"
|
||||||
DOCKER_USERNAME: "$DOCKERHUB_USER" # c'est dans gitlab Setting -> CI -> Variable
|
|
||||||
DOCKER_PASSWORD: "$DOCKERHUB_TOKEN" # IDEM mais j'ai caché mon token
|
|
||||||
IMAGE_BACKEND: "docker.io/benarbause/doodleback-with-quarkus:latest"
|
IMAGE_BACKEND: "docker.io/benarbause/doodleback-with-quarkus:latest"
|
||||||
IMAGE_FRONTEND: "docker.io/vuminh224/doodle-frontend:latest"
|
IMAGE_FRONTEND: "docker.io/vuminh224/doodle-frontend:latest"
|
||||||
APP_REPO: "https://github.com/barais/doodlestudent.git"
|
APP_REPO: "https://github.com/barais/doodlestudent.git"
|
||||||
@@ -16,9 +14,11 @@ variables:
|
|||||||
check_app_update:
|
check_app_update:
|
||||||
stage: check
|
stage: check
|
||||||
image: debian:latest
|
image: debian:latest
|
||||||
before_script:
|
tags:
|
||||||
- apt-get update && apt-get install -y git
|
- docker
|
||||||
script:
|
script:
|
||||||
|
- apt-get update
|
||||||
|
- apt-get install -y git
|
||||||
# Récupère le dernier commit distant
|
# Récupère le dernier commit distant
|
||||||
- LATEST_REMOTE=$(git ls-remote $APP_REPO HEAD | awk '{print $1}')
|
- LATEST_REMOTE=$(git ls-remote $APP_REPO HEAD | awk '{print $1}')
|
||||||
# Récupère le commit actuel du submodule
|
# Récupère le commit actuel du submodule
|
||||||
@@ -31,18 +31,26 @@ check_app_update:
|
|||||||
echo "NEW_COMMIT=false" >> variables.env
|
echo "NEW_COMMIT=false" >> variables.env
|
||||||
fi
|
fi
|
||||||
artifacts:
|
artifacts:
|
||||||
reports:
|
paths:
|
||||||
dotenv: variables.env
|
- variables.env
|
||||||
|
|
||||||
# Build Frontend (Angular)
|
# Build Frontend (Angular)
|
||||||
build_frontend:
|
build_frontend:
|
||||||
stage: build
|
stage: build
|
||||||
image: node:18
|
image: node:current-alpine3.23
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
dependencies:
|
dependencies:
|
||||||
- check_app_update
|
- check_app_update
|
||||||
rules:
|
|
||||||
- if: '$NEW_COMMIT == "true"'
|
|
||||||
script:
|
script:
|
||||||
|
- apk add --no-cache git
|
||||||
|
- git submodule update --init --recursive
|
||||||
|
- source variables.env || true
|
||||||
|
- if [ "$NEW_COMMIT" != "true" ]; then
|
||||||
|
echo "No new commit, skipping build";
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
- ls -la doodlestudent/front #test
|
||||||
- cd doodlestudent/front
|
- cd doodlestudent/front
|
||||||
- npm ci
|
- npm ci
|
||||||
- npm run build --prod
|
- npm run build --prod
|
||||||
@@ -54,27 +62,32 @@ build_frontend:
|
|||||||
# Build & Push Docker frontend
|
# Build & Push Docker frontend
|
||||||
build_docker_frontend:
|
build_docker_frontend:
|
||||||
stage: package
|
stage: package
|
||||||
image: docker:latest
|
tags:
|
||||||
services:
|
- shell
|
||||||
- docker:dind
|
|
||||||
dependencies:
|
dependencies:
|
||||||
|
- check_app_update
|
||||||
- build_frontend
|
- build_frontend
|
||||||
rules:
|
|
||||||
- if: '$NEW_COMMIT == "true"'
|
|
||||||
script:
|
script:
|
||||||
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
- apt update
|
||||||
|
- apt install -y docker.io
|
||||||
|
- source variables.env || true
|
||||||
|
- if [ "$NEW_COMMIT" != "true" ]; then
|
||||||
|
echo "No new commit, skipping build";
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
- echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin
|
||||||
- docker build -t "$IMAGE_FRONTEND" doodlestudent/front
|
- docker build -t "$IMAGE_FRONTEND" doodlestudent/front
|
||||||
- docker push "$IMAGE_FRONTEND"
|
- docker push "$IMAGE_FRONTEND"
|
||||||
- docker logout
|
- docker logout
|
||||||
|
|
||||||
# Deploy to Production
|
# Deploy to Production
|
||||||
deploy_production:
|
deploy_production:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: alpine:latest
|
image: alpine:latest
|
||||||
dependencies:
|
dependencies:
|
||||||
- build_docker_frontend
|
- build_docker_frontend
|
||||||
rules:
|
- check_app_update
|
||||||
- if: '$NEW_COMMIT == "true"'
|
tags:
|
||||||
|
- docker
|
||||||
before_script:
|
before_script:
|
||||||
- apk add --no-cache openssh-client docker-cli
|
- apk add --no-cache openssh-client docker-cli
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
@@ -83,13 +96,18 @@ deploy_production:
|
|||||||
- chmod 600 ~/.ssh/id_rsa
|
- chmod 600 ~/.ssh/id_rsa
|
||||||
- ssh-keyscan -H "$DEPLOY_SERVER" >> ~/.ssh/known_hosts 2>/dev/null || true
|
- ssh-keyscan -H "$DEPLOY_SERVER" >> ~/.ssh/known_hosts 2>/dev/null || true
|
||||||
script:
|
script:
|
||||||
|
- source variables.env || true
|
||||||
|
- if [ "$NEW_COMMIT" != "true" ]; then
|
||||||
|
echo "No new commit, skipping build";
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
- |
|
- |
|
||||||
ssh "$DEPLOY_USER@$DEPLOY_SERVER" << 'EOF'
|
ssh "$DEPLOY_USER@$DEPLOY_SERVER" << 'EOF'
|
||||||
cd /app
|
cd /app
|
||||||
docker compose pull
|
docker compose pull
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
EOF
|
EOF
|
||||||
#environment:
|
environment:
|
||||||
#name: production
|
name: production
|
||||||
#url: http://127.0.0.1
|
url: http://148.60.11.130
|
||||||
when: manual
|
when: manual
|
||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "doodlestudent"]
|
||||||
|
path = doodlestudent
|
||||||
|
url = https://github.com/barais/doodlestudent.git
|
||||||
@@ -53,7 +53,6 @@
|
|||||||
port: "{{ http_port }}"
|
port: "{{ http_port }}"
|
||||||
proto: tcp
|
proto: tcp
|
||||||
|
|
||||||
|
|
||||||
- name: Install munin
|
- name: Install munin
|
||||||
apt:
|
apt:
|
||||||
name:
|
name:
|
||||||
|
|||||||
1
doodlestudent
Submodule
1
doodlestudent
Submodule
Submodule doodlestudent added at c51d096c7b
Reference in New Issue
Block a user