From d57c50bdc418c96db12a04d3c1447eba594ee818 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 10 Aug 2026 05:53:49 +0000 Subject: [PATCH] sync: latest working state before Gitea migration (2026-08-10) --- .github/workflows/ci.yml | 2 +- .gitlab-ci.yml | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 204b814..9dc1d71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ on: push: - branches: ["main", "master"] + branches: ["main", "master", "sales"] pull_request: jobs: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1427c7b..ab8e182 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -284,6 +284,63 @@ deploy-production-source: - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' allow_failure: false +deploy-sales-source: + stage: deploy + tags: + - call-center-prod + needs: + - test + - job: postgres-readiness + optional: true + variables: + DOCKER_HOST: "" + DOCKER_TLS_VERIFY: "" + DOCKER_CERT_PATH: "" + DOCKER_TLS_CERTDIR: "" + APP_IMAGE_NAME: call-center-app + SALES_APP_IMAGE_TAG: active-sales + SALES_DEPLOY_COMPOSE_FILE: /opt/konturai-migration/sales-call-center/docker-compose.yml + environment: + name: sales + url: https://sales.konturai.kz + before_script: + - command -v docker >/dev/null + - command -v ssh >/dev/null + - command -v scp >/dev/null + - command -v gzip >/dev/null + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - cp "$DEPLOY_SSH_PRIVATE_KEY" ~/.ssh/id_ed25519 + - chmod 600 ~/.ssh/id_ed25519 + - ssh-keyscan -H "$DEPLOY_HOST" >> ~/.ssh/known_hosts + script: + - test -n "$DEPLOY_HOST" + - test -n "$DEPLOY_USER" + - test -n "$SALES_DEPLOY_COMPOSE_FILE" + - IMAGE_ARCHIVE="call-center-app-sales-${CI_COMMIT_SHORT_SHA}.tar.gz" + - docker build -t "${APP_IMAGE_NAME}:sales-${CI_COMMIT_SHORT_SHA}" -t "${APP_IMAGE_NAME}:${SALES_APP_IMAGE_TAG}" . + - docker save "${APP_IMAGE_NAME}:sales-${CI_COMMIT_SHORT_SHA}" "${APP_IMAGE_NAME}:${SALES_APP_IMAGE_TAG}" | gzip > "$IMAGE_ARCHIVE" + - scp "$IMAGE_ARCHIVE" "${DEPLOY_USER}@${DEPLOY_HOST}:/tmp/$IMAGE_ARCHIVE" + - | + ssh "${DEPLOY_USER}@${DEPLOY_HOST}" " + set -e + SALES_COMPOSE_FILE='$SALES_DEPLOY_COMPOSE_FILE' + SALES_COMPOSE_DIR=\$(dirname \"\$SALES_COMPOSE_FILE\") + test -f \"\$SALES_COMPOSE_FILE\" + test -f \"\$SALES_COMPOSE_DIR/.env.production\" + gunzip -c /tmp/$IMAGE_ARCHIVE | sudo docker load + rm -f /tmp/$IMAGE_ARCHIVE + sudo env CALL_CENTER_IMAGE='${APP_IMAGE_NAME}:${SALES_APP_IMAGE_TAG}' docker compose -f \"\$SALES_COMPOSE_FILE\" config -q + sudo env CALL_CENTER_IMAGE='${APP_IMAGE_NAME}:${SALES_APP_IMAGE_TAG}' docker compose -f \"\$SALES_COMPOSE_FILE\" run --rm migrate + sudo env CALL_CENTER_IMAGE='${APP_IMAGE_NAME}:${SALES_APP_IMAGE_TAG}' docker compose -f \"\$SALES_COMPOSE_FILE\" up -d --no-build --remove-orphans --force-recreate + sudo docker image prune -f --filter dangling=true + sudo docker ps --filter 'name=^sales-call-center-app$' --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}' + " + rules: + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "sales"' + - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == "sales"' + allow_failure: false + hotfix-analyst-assets: stage: deploy tags: