From 8059d1b0a393ecee011e3484bdd87634808cc2cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B8=D0=B4=20=D0=9E=D0=BC=D0=B0=D1=80=20?= =?UTF-8?q?=D0=9C=D0=B5=D0=B4=D1=85=D0=B0=D1=82?= Date: Sun, 14 Dec 2025 00:08:57 +0500 Subject: [PATCH] f --- .gitlab-ci.yml | 28 +++++++++++++++++++++++++++- docker-compose.server.yml | 5 +---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67dca2f..4f119a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,28 @@ stages: + - build - deploy +variables: + IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA + IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest + +build_and_push: + stage: build + image: docker:29 + services: + - name: docker:29-dind + command: ["--tls=false"] + variables: + DOCKER_TLS_CERTDIR: "" + DOCKER_HOST: tcp://docker:2375 + rules: + - if: '$CI_COMMIT_BRANCH == "main"' + script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" + - docker build --target production -t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" . + - docker push "$IMAGE_TAG" + - docker push "$IMAGE_TAG_LATEST" + deploy_production: stage: deploy image: alpine:3.20 @@ -9,6 +31,8 @@ deploy_production: url: https://api-finance.ai-assistant-bot.xyz rules: - if: '$CI_COMMIT_BRANCH == "main"' + when: manual + allow_failure: false before_script: - apk add --no-cache openssh-client rsync - mkdir -p ~/.ssh @@ -25,4 +49,6 @@ deploy_production: --exclude='coverage' \ --exclude='dist' \ ./ "$DEPLOY_USER@$DEPLOY_HOST:/opt/apps/api-finance/" - - ssh "$DEPLOY_USER@$DEPLOY_HOST" "cd /opt/apps/api-finance && docker compose -f docker-compose.server.yml up -d --build" + - ssh "$DEPLOY_USER@$DEPLOY_HOST" "docker login -u '$CI_REGISTRY_USER' -p '$CI_REGISTRY_PASSWORD' '$CI_REGISTRY'" + - ssh "$DEPLOY_USER@$DEPLOY_HOST" "cd /opt/apps/api-finance && APP_IMAGE='$IMAGE_TAG' docker compose -f docker-compose.server.yml pull" + - ssh "$DEPLOY_USER@$DEPLOY_HOST" "cd /opt/apps/api-finance && APP_IMAGE='$IMAGE_TAG' docker compose -f docker-compose.server.yml up -d" diff --git a/docker-compose.server.yml b/docker-compose.server.yml index e92e07c..17abf67 100644 --- a/docker-compose.server.yml +++ b/docker-compose.server.yml @@ -21,10 +21,7 @@ services: restart: unless-stopped app: - build: - context: . - dockerfile: Dockerfile - target: production + image: ${APP_IMAGE} container_name: api_finance_app environment: NODE_ENV: production