Compare commits
8 Commits
7e3cebaf19
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 60ea2304e6 | |||
| ed34603116 | |||
| 8907db1b84 | |||
| c585d52e55 | |||
| f4772d9016 | |||
| eb31b28b0a | |||
| afe5919a8a | |||
| b7b4a1bb26 |
@@ -11,7 +11,7 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CUSTOMER_REGISTRY_HOST: registry.dev.nii-ecos.ru:80
|
||||
CUSTOMER_REGISTRY_HOST: registry.dev.nii-ecos.ru
|
||||
CUSTOMER_REGISTRY_NAMESPACE: avm
|
||||
CUSTOMER_WEB_IMAGE: state-corp-backend-web
|
||||
CUSTOMER_CELERY_IMAGE: state-corp-backend-celery
|
||||
@@ -24,7 +24,7 @@ env:
|
||||
jobs:
|
||||
deploy:
|
||||
name: Build, Push, Deploy
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: [backend-docker]
|
||||
timeout-minutes: 90
|
||||
|
||||
steps:
|
||||
@@ -78,12 +78,15 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Install crane
|
||||
- name: Setup Docker Buildx
|
||||
run: |
|
||||
set -euo pipefail
|
||||
curl -fsSL https://github.com/google/go-containerregistry/releases/download/v0.19.0/go-containerregistry_Linux_x86_64.tar.gz \
|
||||
| tar xz crane
|
||||
chmod +x crane
|
||||
if ! docker buildx inspect customer-builder >/dev/null 2>&1; then
|
||||
docker buildx create --name customer-builder --driver docker-container --use
|
||||
else
|
||||
docker buildx use customer-builder
|
||||
fi
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
- name: Build and push customer images
|
||||
env:
|
||||
@@ -103,31 +106,29 @@ jobs:
|
||||
celery_ref="${registry_path}/${CUSTOMER_CELERY_IMAGE}"
|
||||
|
||||
printf '%s' "${registry_password}" \
|
||||
| ./crane auth login --insecure "${CUSTOMER_REGISTRY_HOST}" \
|
||||
| docker login "${CUSTOMER_REGISTRY_HOST}" \
|
||||
-u "${registry_user}" \
|
||||
--password-stdin
|
||||
|
||||
docker build \
|
||||
docker buildx build \
|
||||
--platform linux/amd64 \
|
||||
-f ./docker/Dockerfile \
|
||||
--target runtime-web \
|
||||
--build-arg INSTALL_DEV=false \
|
||||
-t customer-state-corp-backend-web:local \
|
||||
--push \
|
||||
-t "${web_ref}:latest" \
|
||||
-t "${web_ref}:${sha_short}" \
|
||||
.
|
||||
docker save customer-state-corp-backend-web:local -o /tmp/customer-state-corp-backend-web.tar
|
||||
./crane push --insecure /tmp/customer-state-corp-backend-web.tar "${web_ref}:latest"
|
||||
./crane push --insecure /tmp/customer-state-corp-backend-web.tar "${web_ref}:${sha_short}"
|
||||
|
||||
docker build \
|
||||
docker buildx build \
|
||||
--platform linux/amd64 \
|
||||
-f ./docker/Dockerfile \
|
||||
--target runtime-celery \
|
||||
--build-arg INSTALL_DEV=false \
|
||||
-t customer-state-corp-backend-celery:local \
|
||||
--push \
|
||||
-t "${celery_ref}:latest" \
|
||||
-t "${celery_ref}:${sha_short}" \
|
||||
.
|
||||
docker save customer-state-corp-backend-celery:local -o /tmp/customer-state-corp-backend-celery.tar
|
||||
./crane push --insecure /tmp/customer-state-corp-backend-celery.tar "${celery_ref}:latest"
|
||||
./crane push --insecure /tmp/customer-state-corp-backend-celery.tar "${celery_ref}:${sha_short}"
|
||||
|
||||
- name: Deploy customer stack
|
||||
env:
|
||||
@@ -165,9 +166,7 @@ jobs:
|
||||
)
|
||||
proxy_command="ssh -i ${key_path} -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null -o LogLevel=ERROR -o ConnectTimeout=15 -W %h:%p ${CUSTOMER_SSH_PROXY_HOST}"
|
||||
remote_command="set -euo pipefail
|
||||
cd /ecos
|
||||
FORCE_PULL=1 COMPOSE_FILE='${CUSTOMER_COMPOSE_FILE}' '${CUSTOMER_DEPLOY_SCRIPT}'
|
||||
docker image prune -f"
|
||||
flock -w 1800 /tmp/ecos-customer-deploy.lock /bin/sh -c 'cd /ecos && FORCE_PULL=1 COMPOSE_FILE=\"${CUSTOMER_COMPOSE_FILE}\" \"${CUSTOMER_DEPLOY_SCRIPT}\" && docker image prune -f'"
|
||||
|
||||
ssh "${ssh_common[@]}" -o "ProxyCommand=${proxy_command}" "${CUSTOMER_DEPLOY_USER}@${CUSTOMER_DEPLOY_HOST}" "true"
|
||||
ssh "${ssh_common[@]}" -o "ProxyCommand=${proxy_command}" "${CUSTOMER_DEPLOY_USER}@${CUSTOMER_DEPLOY_HOST}" "${remote_command}"
|
||||
|
||||
Reference in New Issue
Block a user