84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
# Documentation: https://woodpecker-ci.org/docs/usage/workflow-syntax
|
||
|
||
when:
|
||
- event: [ deployment,manual ]
|
||
variables:
|
||
- &minio_mc minio/mc
|
||
- &appleboy_drone-scp appleboy/drone-scp
|
||
- &appleboy_drone-ssh appleboy/drone-ssh
|
||
- &curlimages_curl:latest curlimages/curl:latest
|
||
- NEXUS_URL: https://nexus.cicd.exygen.fr/repository/domaine-passignat/apps
|
||
|
||
|
||
steps:
|
||
- name: get-share-data
|
||
image: *minio_mc
|
||
commands:
|
||
- echo "ℹ️ Save pipeline info"
|
||
- mc alias set local http://minio:9000 minioadmin minioadmin123
|
||
- mc get local/cicd/repository_$CI_REPO_REMOTE_ID/pipeline_$CI_PIPELINE_PARENT .buildinfo
|
||
- ls -als
|
||
- more .buildinfo
|
||
|
||
- name: get-artifact
|
||
image: *curlimages_curl
|
||
commands: |
|
||
- ls -als
|
||
- more .buildinfo
|
||
- source .buildinfo
|
||
- echo new version: ${NEW_VERSION}
|
||
- curl -o /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar "${NEXUS_URL}/${CI_REPO_NAME}/${NEW_VERSION}/${CI_REPO_NAME}-${VERSION}.tar"
|
||
depends_on: [ get-share-data]
|
||
|
||
# Étape 7: Transfert vers le serveur distant (SCP)
|
||
- name: transfert
|
||
image: *appleboy_drone-scp
|
||
settings:
|
||
host:
|
||
from_secret: remote_host
|
||
username:
|
||
from_secret: remote_user
|
||
password:
|
||
from_secret: remote_password
|
||
port: 22
|
||
source: /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar
|
||
target: /tmp/
|
||
depends_on: [ get-artifact ]
|
||
|
||
# Étape 8: Déploiement sur le serveur distant
|
||
- name: deploy
|
||
image: *appleboy_drone-ssh
|
||
environment:
|
||
SUDO_PASSWORD:
|
||
from_secret: remote_password
|
||
settings:
|
||
host:
|
||
from_secret: remote_host
|
||
username:
|
||
from_secret: remote_user
|
||
password:
|
||
from_secret: remote_password
|
||
port: 22
|
||
envs:
|
||
- SUDO_PASSWORD
|
||
script:
|
||
- echo "$${SUDO_PASSWORD}" | sudo -S systemctl stop gestion
|
||
- mkdir -p /srv/volumes/gestion/{front-binaries,back-binaries,tmpdb}
|
||
- rm -rf /srv/volumes/gestion/front-binaries/*
|
||
- rm -rf /srv/volumes/gestion/back-binaries/*
|
||
- rm -rf /srv/volumes/gestion/tmpdb/*
|
||
- tar -xvf /tmp/${CI_REPO_NAME}-${VERSION}.tar -C /tmp
|
||
- tar -xvf /tmp/front.tar.gz -C /srv/volumes/gestion/front-binaries
|
||
- tar -xzvf /tmp/back.tar.gz -C /srv/volumes/gestion/back-binaries
|
||
- tar -xzvf /tmp/db.tar.gz -C /srv/volumes/gestion/tmpdb
|
||
- rm -f /tmp/front.tar.gz
|
||
- rm -f /tmp/back.tar.gz
|
||
- rm -f /tmp/db.tar.gz
|
||
- rm -f /tmp/${CI_REPO_NAME}-${VERSION}.tar
|
||
- docker-compose up database
|
||
- cd /srv/volumes/gestion/tmpdb
|
||
- npm ci --cache .npm --prefer-offline
|
||
- npm run install-db
|
||
- echo "$${SUDO_PASSWORD}" | sudo -S systemctl start gestion
|
||
depends_on: [ transfert ]
|