Fix GitLab CI for available shell runner

This commit is contained in:
Yera All
2026-04-04 02:09:52 +05:00
parent 3598373627
commit 920b475b11
+46 -19
View File
@@ -15,6 +15,8 @@ variables:
DOCKER_HOST: "tcp://docker:2376"
DOCKER_TLS_VERIFY: "1"
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
PYTHON_BIN: "python3"
CI_POSTGRES_ADMIN_URL: ""
default:
cache:
@@ -22,34 +24,28 @@ default:
- .cache/pip
.python_job:
image: python:3.11-slim
tags:
- crm-shell
before_script:
- python -m pip install --upgrade pip
- pip install -r requirements.txt
- $PYTHON_BIN -m pip install --upgrade pip
- $PYTHON_BIN -m pip install -r requirements.txt
test:
extends: .python_job
stage: test
script:
- pytest -q
- $PYTHON_BIN -m pytest -q
postgres-readiness:
extends: .python_job
stage: test
services:
- name: postgres:16-alpine
alias: postgres
- name: rabbitmq:3-management
alias: rabbitmq
rules:
- if: '$ENABLE_POSTGRES_READINESS == "1" && $CI_POSTGRES_ADMIN_URL'
- when: never
variables:
POSTGRES_DB: mvpcc
POSTGRES_USER: mvp
POSTGRES_PASSWORD: mvp
DATABASE_URL: postgresql://mvp:mvp@postgres:5432/mvpcc
SCHEMA_MANAGEMENT_MODE: migrations
CC_DATA_DIR: .testdata_pg
EVENT_BUS_ENABLED: "0"
EVENT_BUS_URL: amqp://guest:guest@rabbitmq:5672/
APP_TOKEN_SECRET: ci-secret
ALLOW_LEGACY_HEADER_AUTH: "1"
TELEGRAM_BOT_ENABLED: "0"
@@ -59,8 +55,37 @@ postgres-readiness:
AI_WHATSAPP_ENABLED: "0"
AI_VOICE_ENABLED: "0"
script:
- python scripts/migrate_core_db.py
- pytest -q tests/test_postgres_readiness.py
- |
export CI_PG_DB="mvpcc_ci_${CI_PIPELINE_IID}_${CI_JOB_ID}"
$PYTHON_BIN - <<'PY'
import os
import psycopg
admin_url = os.environ["CI_POSTGRES_ADMIN_URL"]
db_name = os.environ["CI_PG_DB"]
with psycopg.connect(admin_url, autocommit=True) as conn:
with conn.cursor() as cur:
cur.execute(f'DROP DATABASE IF EXISTS "{db_name}" WITH (FORCE)')
cur.execute(f'CREATE DATABASE "{db_name}"')
PY
- export DATABASE_URL="postgresql://postgres@127.0.0.1:5433/${CI_PG_DB}"
- $PYTHON_BIN scripts/migrate_core_db.py
- $PYTHON_BIN -m pytest -q tests/test_postgres_readiness.py
after_script:
- |
export CI_PG_DB="mvpcc_ci_${CI_PIPELINE_IID}_${CI_JOB_ID}"
$PYTHON_BIN - <<'PY'
import os
import psycopg
admin_url = os.environ["CI_POSTGRES_ADMIN_URL"]
db_name = os.environ["CI_PG_DB"]
with psycopg.connect(admin_url, autocommit=True) as conn:
with conn.cursor() as cur:
cur.execute(f'DROP DATABASE IF EXISTS "{db_name}" WITH (FORCE)')
PY
.docker_build:
image: docker:27
@@ -70,8 +95,9 @@ postgres-readiness:
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" --password-stdin
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$CI_COMMIT_TAG'
- if: '$ENABLE_REGISTRY_BUILD == "1" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$ENABLE_REGISTRY_BUILD == "1" && $CI_COMMIT_TAG'
- when: never
build-app-image:
extends: .docker_build
@@ -149,6 +175,7 @@ deploy-production:
docker compose --env-file .env.images -f docker-compose.asterisk.server.registry.yml pull && \
docker compose --env-file .env.images -f docker-compose.asterisk.server.registry.yml up -d"
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$ENABLE_REGISTRY_BUILD == "1" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
when: manual
- when: never
allow_failure: false