update steps
This commit is contained in:
parent
8e456bfaad
commit
f380ec6400
@ -1,69 +1,16 @@
|
|||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'docker' }
|
agent { label 'docker' }
|
||||||
environment {
|
|
||||||
DOCKER_BUILDKIT = '1'
|
|
||||||
IMAGE_NAME = 'registry.myinstalink.ru/docbot'
|
|
||||||
}
|
|
||||||
stages {
|
stages {
|
||||||
stage('Checkout'){
|
stage('Checkout'){
|
||||||
steps { checkout scm }
|
steps { checkout scm }
|
||||||
}
|
}
|
||||||
stage('Lint/Test/Sec'){
|
stage('Deploy Prod'){
|
||||||
agent {
|
when { buildingTag() }
|
||||||
docker {
|
|
||||||
reuseNode true
|
|
||||||
image 'python:3.12-slim'
|
|
||||||
args '-u root'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
steps {
|
steps {
|
||||||
sh '''
|
sh '''
|
||||||
apt-get update && apt-get install -y build-essential libpq-dev curl jq
|
ssh -o StrictHostKeyChecking=no kreamond@109.73.204.66 '
|
||||||
pip install -U pip poetry safety bandit
|
|
||||||
poetry install --no-interaction --no-root
|
|
||||||
poetry run ruff check .
|
|
||||||
poetry run mypy src
|
|
||||||
poetry run pytest -q --maxfail=1 --disable-warnings
|
|
||||||
poetry export -f requirements.txt | safety check --stdin || true
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Build & Push'){
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
def sha = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
|
|
||||||
def tag = (env.GIT_BRANCH == 'origin/main') ? "main-${sha}" : "dev-${sha}"
|
|
||||||
sh """
|
|
||||||
echo ${REGISTRY_PASS} | docker login registry.myinstalink.ru -u ${REGISTRY_USER} --password-stdin
|
|
||||||
docker build --target runtime -t ${IMAGE_NAME}:${tag} -t ${IMAGE_NAME}:latest .
|
|
||||||
docker push ${IMAGE_NAME}:${tag}
|
|
||||||
docker push ${IMAGE_NAME}:latest
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Deploy Dev'){ when { branch 'develop' }
|
|
||||||
steps {
|
|
||||||
sh '''
|
|
||||||
ssh -o StrictHostKeyChecking=no deploy@dev-host \
|
|
||||||
"docker pull ${IMAGE_NAME}:latest && docker compose -f /srv/docbot/docker-compose.dev.yml up -d --remove-orphans"
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Deploy Prod'){ when { buildingTag() }
|
|
||||||
steps {
|
|
||||||
sh '''
|
|
||||||
ssh -o StrictHostKeyChecking=no deploy@prod-host '
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
ACTIVE=$(readlink /srv/docbot/current || true)
|
echo "hello"
|
||||||
TARGET=$([ "$ACTIVE" = "/srv/docbot/blue" ] && echo "green" || echo "blue")
|
|
||||||
docker pull ${IMAGE_NAME}:${GIT_TAG_NAME}
|
|
||||||
sed -e "s|__IMAGE__|${IMAGE_NAME}:${GIT_TAG_NAME}|g" /srv/docbot/${TARGET}/docker-compose.prod.yml.tpl > /srv/docbot/${TARGET}/docker-compose.prod.yml
|
|
||||||
docker compose -f /srv/docbot/${TARGET}/docker-compose.prod.yml up -d --remove-orphans
|
|
||||||
docker compose -f /srv/docbot/${TARGET}/docker-compose.prod.yml run --rm app alembic upgrade head
|
|
||||||
curl -fsS http://127.0.0.1:8080/healthz
|
|
||||||
ln -sfn /srv/docbot/${TARGET} /srv/docbot/current
|
|
||||||
systemctl reload nginx || true
|
|
||||||
'
|
'
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user