205 lines
5.7 KiB
YAML
205 lines
5.7 KiB
YAML
kind: pipeline
|
||
name: default
|
||
type: docker
|
||
|
||
steps:
|
||
- name: restore-cache
|
||
image: drillster/drone-volume-cache
|
||
volumes:
|
||
- name: cache
|
||
path: /cache
|
||
settings:
|
||
restore: true
|
||
mount:
|
||
- /cache
|
||
|
||
- name: build
|
||
image: plugins/docker
|
||
environment:
|
||
DOCKER_BUILDKIT: 1
|
||
settings:
|
||
registry: nexus.essocode.ru:5001
|
||
repo: nexus.essocode.ru:5001/ess/emulator-smev
|
||
insecure: true
|
||
cache: true
|
||
tags:
|
||
- latest
|
||
- ${DRONE_SOURCE_BRANCH/\//-}
|
||
- ${DRONE_SOURCE_BRANCH/\//-}-${DRONE_COMMIT}
|
||
cache_from:
|
||
- nexus.essocode.ru:5001/ess/emulator-smev:master
|
||
- nexus.essocode.ru:5001/ess/emulator-smev:${DRONE_SOURCE_BRANCH/\//-}
|
||
dockerfile: ./build/Dockerfile
|
||
username:
|
||
from_secret: docker_login
|
||
password:
|
||
from_secret: docker_pass
|
||
config:
|
||
from_secret: dockerconfig
|
||
build_args:
|
||
from_secret: build_args_nexus
|
||
volumes:
|
||
- name: dockersock
|
||
path: /var/run/docker.sock
|
||
- name: cache
|
||
path: /cache
|
||
depends_on:
|
||
- restore-cache
|
||
|
||
- name: rebuild-cache
|
||
image: drillster/drone-volume-cache
|
||
volumes:
|
||
- name: cache
|
||
path: /cache
|
||
settings:
|
||
rebuild: true
|
||
mount:
|
||
- /cache
|
||
depends_on:
|
||
- build
|
||
|
||
- name: create-dev-config
|
||
image: alpine/helm:3.12.3
|
||
commands:
|
||
- helm template emulator-smev ./deploy/helm --namespace dev --values ./deploy/helm/ocode-dev-values.yaml --set image.tag=${DRONE_SOURCE_BRANCH/\//-}-${DRONE_COMMIT} > ./deploy/helm/k8s-emulator-smev.yaml
|
||
depends_on:
|
||
- rebuild-cache
|
||
when:
|
||
branch:
|
||
- develop
|
||
|
||
- name: deploy-dev
|
||
image: alpine/k8s:1.32.2
|
||
environment:
|
||
KUBECONFIG_CONTENT:
|
||
from_secret: kubeconfig
|
||
commands:
|
||
- export KUBE_TMP_DIR=$(mktemp -d)
|
||
- echo "$KUBECONFIG_CONTENT" > $KUBE_TMP_DIR/config
|
||
- chmod 600 $KUBE_TMP_DIR/config
|
||
- echo "File permissions:"
|
||
- ls -la $KUBE_TMP_DIR/
|
||
- echo "Kubectl version:"
|
||
- kubectl version --client
|
||
- cat ./deploy/helm/k8s-emulator-smev.yaml
|
||
- kubectl --kubeconfig=$KUBE_TMP_DIR/config apply -f ./deploy/helm/k8s-emulator-smev.yaml
|
||
depends_on:
|
||
- create-dev-config
|
||
when:
|
||
branch:
|
||
- develop
|
||
|
||
- name: create-rel-config
|
||
image: alpine/helm:3.12.3
|
||
commands:
|
||
- helm template emulator-smev ./deploy/helm --namespace dev --values ./deploy/helm/ocode-rel-ok-values.yaml --set image.tag=${DRONE_SOURCE_BRANCH/\//-}-${DRONE_COMMIT} > ./deploy/helm/k8s-emulator-smev.yaml
|
||
depends_on:
|
||
- rebuild-cache
|
||
when:
|
||
branch:
|
||
- rel
|
||
|
||
- name: deploy-rel
|
||
image: alpine/k8s:1.32.2
|
||
environment:
|
||
KUBECONFIG_CONTENT:
|
||
from_secret: kubeconfig
|
||
commands:
|
||
- export KUBE_TMP_DIR=$(mktemp -d)
|
||
- echo "$KUBECONFIG_CONTENT" > $KUBE_TMP_DIR/config
|
||
- chmod 600 $KUBE_TMP_DIR/config
|
||
- echo "File permissions:"
|
||
- ls -la $KUBE_TMP_DIR/
|
||
- echo "Kubectl version:"
|
||
- kubectl version --client
|
||
- cat ./deploy/helm/k8s-emulator-smev.yaml
|
||
- kubectl --kubeconfig=$KUBE_TMP_DIR/config apply -f ./deploy/helm/k8s-emulator-smev.yaml
|
||
depends_on:
|
||
- create-rel-config
|
||
when:
|
||
branch:
|
||
- rel
|
||
|
||
- name: notify-deploy-success
|
||
image: appleboy/drone-telegram
|
||
settings:
|
||
token:
|
||
from_secret: telegram_bot_token
|
||
to:
|
||
from_secret: telegram_chat_id
|
||
message: |
|
||
🚀 Деплой успешно отправлен!
|
||
Сборка #{{build.number}}
|
||
Репозиторий: {{repo.name}}
|
||
Ветка: {{commit.branch}}
|
||
Подробнее: [Ссылка на сборку]({{build.link}})
|
||
when:
|
||
status: [ success ]
|
||
depends_on:
|
||
- deploy-dev
|
||
- deploy-rel
|
||
|
||
- name: notify-deploy-failure
|
||
image: appleboy/drone-telegram
|
||
settings:
|
||
token:
|
||
from_secret: telegram_bot_token
|
||
to:
|
||
from_secret: telegram_chat_id
|
||
message: |
|
||
❌ Деплой не отправлен!
|
||
Сборка #{{build.number}}
|
||
Репозиторий: {{repo.name}}
|
||
Ветка: {{commit.branch}}
|
||
Подробнее: [Ссылка на сборку]({{build.link}})
|
||
when:
|
||
status: [ failure ]
|
||
depends_on:
|
||
- deploy-dev
|
||
- deploy-rel
|
||
|
||
- name: notify-build-status
|
||
image: appleboy/drone-telegram
|
||
settings:
|
||
token:
|
||
from_secret: telegram_bot_token
|
||
to:
|
||
from_secret: telegram_chat_id
|
||
message: |
|
||
{{#eq build.status "success"}}📣 Сборка #{{build.number}} завершилась со статусом: {{build.status}}!{{/eq}}
|
||
{{#eq build.status "failure"}}🧱 Сборка #{{build.number}} завершилась со статусом: {{build.status}}!{{/eq}}
|
||
Репозиторий: {{repo.name}}
|
||
Ветка: {{commit.branch}}
|
||
Автор: {{commit.author}}
|
||
Сообщение: {{commit.message}}
|
||
Подробнее: [Ссылка на сборку]({{build.link}})
|
||
when:
|
||
status: [ success, failure ]
|
||
depends_on:
|
||
- notify-deploy-success
|
||
- notify-deploy-failure
|
||
|
||
image_pull_secrets:
|
||
- dockerconfig
|
||
|
||
node:
|
||
node: 149.154.64.5
|
||
|
||
trigger:
|
||
event:
|
||
include:
|
||
- push
|
||
- tag
|
||
- pull_request
|
||
- rollback
|
||
|
||
volumes:
|
||
- name: out
|
||
temp: {}
|
||
- name: dockersock
|
||
host:
|
||
path: /var/run/docker.sock
|
||
- name: cache
|
||
host:
|
||
path: /tmp/.buildx-cache
|