Fix GitLab CI for available shell runner
This commit is contained in:
+46
-19
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user