Files
test-cicd/.woodpecker/deploy-pipeline.yml
2026-05-04 16:38:03 +02:00

75 lines
2.5 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Documentation: https://woodpecker-ci.org/docs/usage/workflow-syntax
when:
- event: [ deployment,manual ]
steps:
- name: share-data
image: minio/mc
commands:
- echo " Save pipeline info"
- echo NEW_VERSION=$NEW_VERSION > .buildinfo
- mc alias set local http://minio:9000 minioadmin minioadmin123
- mc get local/ci/$CI_REPO_REMOTE_ID/$CI_PIPELINE_PARENT .buildinfo
depends_on: [ commit_tag ]
- name: get-artifact
image: curlimages/curl:latest
commands: |
source .buildinfo
echo new version: ${NEW_VERSION}
curl -o /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar \
"https://nexus.cicd.exygen.fr/repository/domaine-passignat/apps/${CI_REPO_NAME}/${NEW_VERSION}/${CI_REPO_NAME}-${VERSION}.tar"
# É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 ]