node-api/.drone.yml

201 lines
8.6 KiB
YAML
Raw Normal View History

kind: pipeline
type: docker
name: testing
steps:
- name: unittests
2022-07-22 22:26:30 +00:00
image: golang:1.18-bullseye
environment:
SNAPSHOTS_S3_ENDPOINT: minio:9000
TEST_S3_ENDPOINT: minio:9000
2022-02-06 00:13:45 +00:00
volumes:
- name: dockersock
path: /var/run
commands:
2022-07-22 22:26:30 +00:00
- apt update && apt upgrade -y
2022-07-22 22:28:29 +00:00
- apt install -y tar zstd
2022-07-22 22:22:17 +00:00
- sleep 10
- go mod tidy
- make test
services:
- name: minio
image: minio/minio:latest
environment:
MINIO_ROOT_USER: test
MINIO_ROOT_PASSWORD: testtest
command:
- server
- /data
- --console-address
- :9001
2022-02-06 00:13:45 +00:00
- name: docker
image: docker:dind
privileged: true
volumes:
- name: dockersock
path: /var/run
volumes:
- name: dockersock
temp: {}
2021-10-26 21:08:07 +00:00
---
kind: pipeline
type: docker
name: Dev deploy
2021-10-26 21:08:07 +00:00
steps:
- name: build
# image: golang:1.17-buster # this one is used in production
image: golang:1.17-bullseye # this one is used in dev
2021-10-26 21:08:07 +00:00
commands:
- go mod tidy
- make build
2021-10-26 21:13:20 +00:00
2021-10-26 21:08:07 +00:00
- name: deploy
image: debian:buster
environment:
#NODE: node-x.rosti.cz
2022-05-20 21:53:54 +00:00
NODES: 192.168.1.236 192.168.1.220
2021-10-26 21:08:07 +00:00
SSH_KEY:
2021-10-26 21:13:20 +00:00
from_secret: SSH_KEY
2021-10-26 21:08:07 +00:00
commands:
- apt update && apt install -y ssh
- |
for NODE in $NODES; do
echo "\033[0;32mDeploying $NODE\033[0m"
mkdir -p ~/.ssh && echo "$SSH_KEY" > ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519
echo "\033[1;33m.. scanning SSH keys\033[0m"
ssh-keyscan $NODE > ~/.ssh/known_hosts
echo "\033[1;33m.. copying the binary\033[0m"
scp node-api root@$NODE:/usr/local/bin/node-api_
echo "\033[1;33m.. replacing the binary\033[0m"
ssh root@$NODE mv /usr/local/bin/node-api_ /usr/local/bin/node-api
2021-10-26 23:26:04 +00:00
echo "\033[1;33m.. restarting service\033[0m"
ssh root@$NODE systemctl restart node-api
done
2021-10-26 21:08:07 +00:00
trigger:
branch:
- main
event:
- push
- custom
2021-10-26 21:13:20 +00:00
depends_on:
2021-10-26 21:14:34 +00:00
- testing
2021-10-26 23:11:57 +00:00
---
kind: pipeline
type: docker
2022-05-21 20:42:17 +00:00
name: Production deploy (Debian 10)
2021-10-26 23:11:57 +00:00
steps:
- name: build
image: golang:1.17-buster # this one is used in production
#image: golang:1.17-bullseye # this one is used in dev
2021-10-26 23:11:57 +00:00
commands:
- go mod tidy
- make build
- name: deploy
image: debian:buster
environment:
2023-06-30 21:27:11 +00:00
PROXY: saturn.rosti.cz
2022-05-21 20:42:17 +00:00
NODES: node-18.rosti.cz node-19.rosti.cz
SSH_KEY:
from_secret: SSH_KEY
2023-06-30 21:27:11 +00:00
HOST_KEYS: |
node-18.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDp0KZ82dxmBJMJXuqHMiukRqVGHxyfN/nyjqPPemEz1AG2kA80od7Z9TPXYpM6Drnz0Dfcipuys7w8tbcWQGz7W+Tv1x6NWWI2r4WVfVlRkP52zdNUM/ASH88xNVmKK5FfjNyYM0khGnBcdV+ZcH/Mb7ZLLraol7B/uLahFYA5y1v+hH5ZftT8YnpOmVsx0m7PhE1zB6f5VFscSIJ5LQjhHaXkOd5zxxYJtxG6BjzqKdx5AJ2pPa6astzX4EAstpk6KzImCZ12mEEtg7bT3rLuGXg+j1DWFcHpDs0JJxF3GKGooHqbB5s26mTigqTjnytJsIzMgtfslmsLCsJGGO3B
node-18.rosti.cz ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM4ukB6uTrCzVPjsANlkD6WYoE5bNbzr62ja/nYmEKe+zvgYAb67aXLAt+pals5Hvx5cuZstQkwuTkThBcyltsg=
node-18.rosti.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBAdTePM+EllZc+ZQsxuhdfiw9cRX5lAx2c9drWARSWL
node-19.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ASSidNCyGTyxlWhpm0wH/jW8a25GwAdgH29bC3pLniewTvFcKNFcW3gLjEzIb1v2um98d/OkjeUC2wBJfcoLIkfb7x3pSqQhGVYeD+vbzOMNHIEiyicnqc8bqBN/21kCaZ37KRpz2UEVgPcbawzR3v8toBUL9uSoPbnMrc6p05hTTd2zTiHPnZrmY21vQDqDYCM8YOd0KT60cSW+62B+B8t5nHOOfTZVAEvL5LK56vlFuiYDEumorSN++xpSV6IoZOKqO4WbwLh1OQn/0q85bMzkzTbBbLO7jZl1SepqbBdIg6VtsiWIWtbGf8XgBNgbNEHARoskznvL6whBiwW5
node-19.rosti.cz ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLvXp6VGcBToKNE8T1/T6ghO3MRA+lWrwCPdXRLKb1QbGKUMI/1XXdouVWNhzDdjlOeQzrAyYG9BjYdu0HS3Z9E=
node-19.rosti.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC8Ti8HnOClESyv+ORPKKC23ScvyxvsPR+hInrnh8ab3
node-20.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDaCUbo/dSs1jtOBpmMPYrS4fTSnMTh747JkDcRPeExREaHJiJaoKGhr7C2+tBgp/AsoIZ6Wnr9DZemNHRkb1BpAL63bqr/MRpxmanFn1hrV1/2GA79RwH6TIZ7CUe3TR0oGRX9KL+jRRGbeEC5Wqzx1nQ4wN2frkI/ZvqKsBMMRvmRC6qT1lS0w/4s4urYtzrW9AhXMx2UF+IpKo8K9MclTZ0oXggekSg04TuFT9b2DJWZFcfazm10THvC74PULvxWXh7CL22PhraMcJIwoON8rP8SEYbkV6XOUZ9ieBXZ7+kWv+leD4LsQznHGkl6eh3/A/4BC0Dlua1oiRaxsJ6V6Y033PfQIdBN3ejHEMfkgKPBCdNNi5N35JoNhnB32Tg3h6UXQjDc8I6nGu0V96PaMGOOhXRBKDT/KAsRpd781C5aTWj0fgthTBXs2IvQltPgvKvY0cpKztfZ8cjYaFBHqwDwZbRO6E2c820bWtSwb//LKcbeZV5lSl3rI8zcnsM=
node-20.rosti.cz ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFVisMN6X3k1wxeFlm9iscEy7YrFoYcYG0EORWzqArKstO0tklPQypuO7sqskjqsICoOsAgx5xQu8gPSa5C3kV8=
node-20.rosti.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAa8Y7z8peAHWfFjkaKDFS4n6sKglkOtmQw7DgBMzjSt
2022-05-21 20:42:17 +00:00
commands:
2023-06-30 21:39:12 +00:00
- apt update && apt install -y ssh rsync
2022-05-21 20:42:17 +00:00
- |
for NODE in $NODES; do
echo "\033[0;32mDeploying $NODE\033[0m"
mkdir -p ~/.ssh && echo "$SSH_KEY" > ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519
2023-06-30 21:27:11 +00:00
echo "\033[1;33m.. setting up SSH host keys\033[0m"
echo "$HOST_KEYS" > ~/.ssh/known_hosts
2022-05-21 20:42:17 +00:00
echo "\033[1;33m.. copying the binary\033[0m"
2023-06-30 21:27:11 +00:00
rsync -ave "ssh -J root@$PROXY" node-api root@$NODE:/usr/local/bin/node-api_
2022-05-21 20:42:17 +00:00
echo "\033[1;33m.. replacing the binary\033[0m"
ssh root@$NODE mv /usr/local/bin/node-api_ /usr/local/bin/node-api
echo "\033[1;33m.. restarting service\033[0m"
ssh root@$NODE systemctl restart node-api
done
depends_on:
- testing
trigger:
event:
- promote
target:
- production
---
kind: pipeline
type: docker
name: Production deploy (Debian 11)
steps:
- name: build
image: golang:1.18-bullseye # this one is used in production
#image: golang:1.17-bullseye # this one is used in dev
commands:
- go mod tidy
- make build
- name: deploy
image: debian:bullseye
environment:
2023-06-30 21:27:11 +00:00
PROXY: saturn.rosti.cz
2022-05-21 20:42:17 +00:00
NODES: node-20.rosti.cz
2021-10-26 23:11:57 +00:00
SSH_KEY:
from_secret: SSH_KEY
2023-06-30 21:27:11 +00:00
HOST_KEYS: |
node-18.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDp0KZ82dxmBJMJXuqHMiukRqVGHxyfN/nyjqPPemEz1AG2kA80od7Z9TPXYpM6Drnz0Dfcipuys7w8tbcWQGz7W+Tv1x6NWWI2r4WVfVlRkP52zdNUM/ASH88xNVmKK5FfjNyYM0khGnBcdV+ZcH/Mb7ZLLraol7B/uLahFYA5y1v+hH5ZftT8YnpOmVsx0m7PhE1zB6f5VFscSIJ5LQjhHaXkOd5zxxYJtxG6BjzqKdx5AJ2pPa6astzX4EAstpk6KzImCZ12mEEtg7bT3rLuGXg+j1DWFcHpDs0JJxF3GKGooHqbB5s26mTigqTjnytJsIzMgtfslmsLCsJGGO3B
node-18.rosti.cz ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM4ukB6uTrCzVPjsANlkD6WYoE5bNbzr62ja/nYmEKe+zvgYAb67aXLAt+pals5Hvx5cuZstQkwuTkThBcyltsg=
node-18.rosti.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBAdTePM+EllZc+ZQsxuhdfiw9cRX5lAx2c9drWARSWL
node-19.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ASSidNCyGTyxlWhpm0wH/jW8a25GwAdgH29bC3pLniewTvFcKNFcW3gLjEzIb1v2um98d/OkjeUC2wBJfcoLIkfb7x3pSqQhGVYeD+vbzOMNHIEiyicnqc8bqBN/21kCaZ37KRpz2UEVgPcbawzR3v8toBUL9uSoPbnMrc6p05hTTd2zTiHPnZrmY21vQDqDYCM8YOd0KT60cSW+62B+B8t5nHOOfTZVAEvL5LK56vlFuiYDEumorSN++xpSV6IoZOKqO4WbwLh1OQn/0q85bMzkzTbBbLO7jZl1SepqbBdIg6VtsiWIWtbGf8XgBNgbNEHARoskznvL6whBiwW5
node-19.rosti.cz ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLvXp6VGcBToKNE8T1/T6ghO3MRA+lWrwCPdXRLKb1QbGKUMI/1XXdouVWNhzDdjlOeQzrAyYG9BjYdu0HS3Z9E=
node-19.rosti.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC8Ti8HnOClESyv+ORPKKC23ScvyxvsPR+hInrnh8ab3
node-20.rosti.cz ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDaCUbo/dSs1jtOBpmMPYrS4fTSnMTh747JkDcRPeExREaHJiJaoKGhr7C2+tBgp/AsoIZ6Wnr9DZemNHRkb1BpAL63bqr/MRpxmanFn1hrV1/2GA79RwH6TIZ7CUe3TR0oGRX9KL+jRRGbeEC5Wqzx1nQ4wN2frkI/ZvqKsBMMRvmRC6qT1lS0w/4s4urYtzrW9AhXMx2UF+IpKo8K9MclTZ0oXggekSg04TuFT9b2DJWZFcfazm10THvC74PULvxWXh7CL22PhraMcJIwoON8rP8SEYbkV6XOUZ9ieBXZ7+kWv+leD4LsQznHGkl6eh3/A/4BC0Dlua1oiRaxsJ6V6Y033PfQIdBN3ejHEMfkgKPBCdNNi5N35JoNhnB32Tg3h6UXQjDc8I6nGu0V96PaMGOOhXRBKDT/KAsRpd781C5aTWj0fgthTBXs2IvQltPgvKvY0cpKztfZ8cjYaFBHqwDwZbRO6E2c820bWtSwb//LKcbeZV5lSl3rI8zcnsM=
node-20.rosti.cz ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFVisMN6X3k1wxeFlm9iscEy7YrFoYcYG0EORWzqArKstO0tklPQypuO7sqskjqsICoOsAgx5xQu8gPSa5C3kV8=
node-20.rosti.cz ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAa8Y7z8peAHWfFjkaKDFS4n6sKglkOtmQw7DgBMzjSt
2021-10-26 23:11:57 +00:00
commands:
2023-06-30 21:39:12 +00:00
- apt update && apt install -y ssh rsync
2021-10-26 23:11:57 +00:00
- |
for NODE in $NODES; do
echo "\033[0;32mDeploying $NODE\033[0m"
mkdir -p ~/.ssh && echo "$SSH_KEY" > ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519
2023-06-30 21:27:11 +00:00
echo "\033[1;33m.. setting up SSH host keys\033[0m"
echo "$HOST_KEYS" > ~/.ssh/known_hosts
echo "\033[1;33m.. copying the binary\033[0m"
2023-06-30 21:27:11 +00:00
rsync -ave "ssh -J root@$PROXY" node-api root@$NODE:/usr/local/bin/node-api_
echo "\033[1;33m.. replacing the binary\033[0m"
2023-06-30 21:27:11 +00:00
ssh -J root@$PROXY root@$NODE mv /usr/local/bin/node-api_ /usr/local/bin/node-api
2021-10-26 23:26:04 +00:00
echo "\033[1;33m.. restarting service\033[0m"
2023-06-30 21:27:11 +00:00
ssh -J root@$PROXY root@$NODE systemctl restart node-api
2021-10-26 23:11:57 +00:00
done
depends_on:
- testing
trigger:
event:
- promote
target:
- production