Compare commits
56 Commits
eca0e35935
...
v0.0.50
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14342999e2 | ||
|
|
0e18715f05 | ||
|
|
b64fa8fada | ||
|
|
932c500c1b | ||
|
|
72d52577e3 | ||
|
|
3919254309 | ||
|
|
b4f2bb4e33 | ||
|
|
75a3c7febb | ||
|
|
735bdfe856 | ||
|
|
f1b0885a30 | ||
|
|
7ef43a29cb | ||
|
|
3f6dddcd0a | ||
|
|
a2512b1cca | ||
|
|
bcee6b5514 | ||
|
|
11f0109bc5 | ||
|
|
e25080a87c | ||
|
|
f71058a31a | ||
|
|
bd98d8eb6e | ||
|
|
e684cadb9f | ||
|
|
0c091538e8 | ||
|
|
ccda246266 | ||
|
|
6a55acd235 | ||
|
|
faecd90037 | ||
|
|
680ac2fd2b | ||
|
|
3d7f20d2bf | ||
|
|
7df04c4084 | ||
|
|
ed5ffdbdc0 | ||
|
|
f6e52f7420 | ||
|
|
35adae3978 | ||
|
|
161e2c12cf | ||
|
|
d20a29408f | ||
|
|
78e682d10f | ||
|
|
c51709bd26 | ||
|
|
cc96f7f5e2 | ||
|
|
fdf11214dd | ||
|
|
e4dbf60a20 | ||
|
|
307fb3c325 | ||
|
|
e9162550bb | ||
|
|
9823520d00 | ||
|
|
4e54bed176 | ||
|
|
3c52e96359 | ||
|
|
1444d14a57 | ||
|
|
6a8156bc74 | ||
|
|
cc0e6db4a7 | ||
|
|
c49bfa33a8 | ||
|
|
f3e9dee594 | ||
|
|
268930859e | ||
|
|
02e548f723 | ||
|
|
1085ba4502 | ||
|
|
cc65eb1ba9 | ||
|
|
9b9df6f9c1 | ||
|
|
9d980e79c1 | ||
|
|
5a989e4a58 | ||
|
|
e489c6ef1d | ||
|
|
d7bca9f4a5 | ||
|
|
f4664288a9 |
@@ -3,28 +3,25 @@ when:
|
|||||||
branch: [ main ]
|
branch: [ main ]
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
- &node_image node:18-alpine
|
node_image: &node_image node:18-alpine
|
||||||
- &git_image alpine/git
|
git_image: &git_image alpine/git
|
||||||
- &curl_image curlimages/curl:latest
|
curl_image: &curl_image curlimages/curl:latest
|
||||||
|
nexus_api: &nexus_api http://nexus.cicd.exygen.fr/service/rest/v1
|
||||||
|
woodpecker_api: &woodpecker_api http://woodpecker.cicd.exygen.fr/api
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Étape 1: Nettoyage du projet
|
# Étape 1: Nettoyage du projet
|
||||||
- name: clean_project
|
- name: clean_project
|
||||||
image: *git_image
|
image: *git_image
|
||||||
commands: |
|
commands:
|
||||||
ls -als /
|
- rm -rf dist
|
||||||
touch /shared/build.txt
|
- rm -f $CI_WORKSPACE/build/version.env
|
||||||
echo "1 $CI_WORKSPACE"
|
- echo "✅ Nettoyage terminé"
|
||||||
rm -rf dist
|
|
||||||
rm -f $CI_WORKSPACE/build/version.env
|
|
||||||
echo "✅ Nettoyage terminé"
|
|
||||||
depends_on: [ ]
|
|
||||||
|
|
||||||
# Étape 2: Analyser le message du commit
|
# Étape 2: Analyser le message du commit
|
||||||
- name: prepare
|
- name: prepare
|
||||||
image: *git_image
|
image: *git_image
|
||||||
commands: |
|
commands: |
|
||||||
|
|
||||||
COMMIT_MSG=$(git log -1 --pretty=%B)
|
COMMIT_MSG=$(git log -1 --pretty=%B)
|
||||||
echo "📝 Message: $COMMIT_MSG"
|
echo "📝 Message: $COMMIT_MSG"
|
||||||
|
|
||||||
@@ -110,6 +107,7 @@ steps:
|
|||||||
NEXUS_PASSWORD:
|
NEXUS_PASSWORD:
|
||||||
from_secret: nexus_password
|
from_secret: nexus_password
|
||||||
NEXUS_REPOSITORY: domaine-passignat
|
NEXUS_REPOSITORY: domaine-passignat
|
||||||
|
NEXUS_API: *nexus_api
|
||||||
commands: |
|
commands: |
|
||||||
source $CI_WORKSPACE/version.env
|
source $CI_WORKSPACE/version.env
|
||||||
|
|
||||||
@@ -125,16 +123,14 @@ steps:
|
|||||||
-u "$NEXUS_USERNAME:$NEXUS_PASSWORD" \
|
-u "$NEXUS_USERNAME:$NEXUS_PASSWORD" \
|
||||||
-F "raw.directory=apps/$CI_REPO_NAME/$NEW_VERSION" \
|
-F "raw.directory=apps/$CI_REPO_NAME/$NEW_VERSION" \
|
||||||
-F "raw.asset1=@$ARTIFACT_FILE" \
|
-F "raw.asset1=@$ARTIFACT_FILE" \
|
||||||
-F "raw.asset1.filename=$ARTIFACT" \
|
-F "raw.asset1.filename=$ARTIFACT" $NEXUS_API/components?repository=$NEXUS_REPOSITORY
|
||||||
http://nexus.cicd.exygen.fr/service/rest/v1/components?repository=$NEXUS_REPOSITORY
|
|
||||||
echo "✅ Artefact publié"
|
echo "✅ Artefact publié"
|
||||||
else
|
else
|
||||||
echo "⏭️ Pas de publication (version_type=none)"
|
echo "⏭️ Pas de publication (version_type=none)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
depends_on: [ package ]
|
depends_on: [ package ]
|
||||||
|
|
||||||
# Étape 7: Commit et tag (après publication)
|
# Étape 7: Commit et tag
|
||||||
- name: commit_tag
|
- name: commit_tag
|
||||||
image: *git_image
|
image: *git_image
|
||||||
environment:
|
environment:
|
||||||
@@ -148,13 +144,6 @@ steps:
|
|||||||
git config user.email "woodpecker@exygen.fr"
|
git config user.email "woodpecker@exygen.fr"
|
||||||
git config user.name "Woodpecker CI"
|
git config user.name "Woodpecker CI"
|
||||||
|
|
||||||
echo "ℹ️ Save pipeline info"
|
|
||||||
BUILD=/shared/builds/$CI_REPO_REMOTE_ID/$CI_PIPELINE_NUMBER
|
|
||||||
mkdir -p /shared/builds/$CI_REPO_REMOTE_ID/
|
|
||||||
echo NEW_VERSION=$NEW_VERSION > $BUILD
|
|
||||||
echo NEW_VERSION=$NEW_VERSION > $BUILD
|
|
||||||
git add $BUILD 2>/dev/null || true
|
|
||||||
|
|
||||||
echo "ℹ️ add generated files (sql)"
|
echo "ℹ️ add generated files (sql)"
|
||||||
git add ./database/src/sql/*.sql 2>/dev/null || true
|
git add ./database/src/sql/*.sql 2>/dev/null || true
|
||||||
git add package.json 2>/dev/null || true
|
git add package.json 2>/dev/null || true
|
||||||
@@ -175,13 +164,23 @@ steps:
|
|||||||
else
|
else
|
||||||
echo "⚠️ Aucun changement à commiter"
|
echo "⚠️ Aucun changement à commiter"
|
||||||
fi
|
fi
|
||||||
ls -alsR /shared/builds/
|
|
||||||
depends_on: [ publish ]
|
depends_on: [ publish ]
|
||||||
|
|
||||||
|
- 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 mb local/cicd || true
|
||||||
|
- mc cp .buildinfo local/cicd/repository_$CI_REPO_REMOTE_ID/pipeline_$CI_PIPELINE_NUMBER
|
||||||
|
depends_on: [ commit_tag ]
|
||||||
|
|
||||||
# Étape 8: Déclencher le déploiement
|
# Étape 8: Déclencher le déploiement
|
||||||
- name: trigger-deployment
|
- name: trigger-deployment
|
||||||
image: curlimages/curl:latest
|
image: curlimages/curl:latest
|
||||||
environment:
|
environment:
|
||||||
|
WOODPECKER_API: *woodpecker_api
|
||||||
WOODPECKER_TOKEN:
|
WOODPECKER_TOKEN:
|
||||||
from_secret: woodpecker_token
|
from_secret: woodpecker_token
|
||||||
commands: |
|
commands: |
|
||||||
@@ -190,9 +189,8 @@ steps:
|
|||||||
echo "🚀 Déclenchement du déploiement pour la version $NEW_VERSION"
|
echo "🚀 Déclenchement du déploiement pour la version $NEW_VERSION"
|
||||||
echo "🚀 $CI_REPO_OWNER"
|
echo "🚀 $CI_REPO_OWNER"
|
||||||
echo "🚀 $CI_REPO_NAME"
|
echo "🚀 $CI_REPO_NAME"
|
||||||
echo "http://woodpecker.cicd.exygen.fr/api/repos/$CI_REPO_OWNER/$CI_REPO_NAME/pipelines"
|
echo "$WOODPECKER_API/repos/$CI_REPO_OWNER/$CI_REPO_NAME/pipelines"
|
||||||
curl -v --fail -X POST \
|
curl -v --fail -X POST "$WOODPECKER_API/repos/$CI_REPO_OWNER/$CI_REPO_NAME/pipelines" \
|
||||||
"http://woodpecker.cicd.exygen.fr/api/repos/$CI_REPO_OWNER/$CI_REPO_NAME/pipelines" \
|
|
||||||
-H "Authorization: Bearer $WOODPECKER_TOKEN" \
|
-H "Authorization: Bearer $WOODPECKER_TOKEN" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{
|
-d '{
|
||||||
|
|||||||
@@ -2,22 +2,40 @@
|
|||||||
|
|
||||||
when:
|
when:
|
||||||
- event: [ deployment,manual ]
|
- event: [ deployment,manual ]
|
||||||
|
variables:
|
||||||
|
minio_mc: &minio_mc minio/mc
|
||||||
|
appleboy_drone_scp: &appleboy_drone_scp appleboy/drone-scp
|
||||||
|
appleboy_drone_ssh: &appleboy_drone_ssh appleboy/drone-ssh
|
||||||
|
curlimages_curl: &curlimages_curl curlimages/curl:latest
|
||||||
|
nexus_url: &nexus_url http://nexus.cicd.exygen.fr/repository/domaine-passignat/apps
|
||||||
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: get-share-data
|
||||||
|
image: *minio_mc
|
||||||
|
commands:
|
||||||
|
- echo "ℹ️ Load 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
|
||||||
|
|
||||||
- name: get-artifact
|
- name: get-artifact
|
||||||
image: curlimages/curl:latest
|
image: *curlimages_curl
|
||||||
commands: |
|
environment:
|
||||||
env
|
NEXUS_USERNAME:
|
||||||
BUILD=/shared/builds/$CI_REPO_REMOTE_ID/$CI_PIPELINE_PARENT
|
from_secret: nexus_username
|
||||||
ls -alsR /shared/builds/
|
NEXUS_PASSWORD:
|
||||||
source $BUILD
|
from_secret: nexus_password
|
||||||
echo new version: ${NEW_VERSION}
|
NEXUS_REPOSITORY: domaine-passignat
|
||||||
curl -o /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar \
|
NEXUS_URL: *nexus_url
|
||||||
"https://nexus.cicd.exygen.fr/repository/domaine-passignat/apps/${CI_REPO_NAME}/${NEW_VERSION}/${CI_REPO_NAME}-${VERSION}.tar"
|
commands:
|
||||||
|
- ls -als
|
||||||
|
- curl -o /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar "${NEXUS_URL}/${CI_REPO_NAME}/${NEW_VERSION}/${CI_REPO_NAME}-${NEW_VERSION}.tar"
|
||||||
|
depends_on: [ get-share-data ]
|
||||||
|
|
||||||
# Étape 7: Transfert vers le serveur distant (SCP)
|
# Étape 7: Transfert vers le serveur distant (SCP)
|
||||||
- name: transfert
|
- name: transfert
|
||||||
image: appleboy/drone-scp
|
image: *appleboy_drone_scp
|
||||||
settings:
|
settings:
|
||||||
host:
|
host:
|
||||||
from_secret: remote_host
|
from_secret: remote_host
|
||||||
@@ -32,7 +50,7 @@ steps:
|
|||||||
|
|
||||||
# Étape 8: Déploiement sur le serveur distant
|
# Étape 8: Déploiement sur le serveur distant
|
||||||
- name: deploy
|
- name: deploy
|
||||||
image: appleboy/drone-ssh
|
image: *appleboy_drone_ssh
|
||||||
environment:
|
environment:
|
||||||
SUDO_PASSWORD:
|
SUDO_PASSWORD:
|
||||||
from_secret: remote_password
|
from_secret: remote_password
|
||||||
@@ -47,19 +65,20 @@ steps:
|
|||||||
envs:
|
envs:
|
||||||
- SUDO_PASSWORD
|
- SUDO_PASSWORD
|
||||||
script:
|
script:
|
||||||
|
- source .buildinfo
|
||||||
- echo "$${SUDO_PASSWORD}" | sudo -S systemctl stop gestion
|
- echo "$${SUDO_PASSWORD}" | sudo -S systemctl stop gestion
|
||||||
- mkdir -p /srv/volumes/gestion/{front-binaries,back-binaries,tmpdb}
|
- mkdir -p /srv/volumes/gestion/{front-binaries,back-binaries,tmpdb}
|
||||||
- rm -rf /srv/volumes/gestion/front-binaries/*
|
- rm -rf /srv/volumes/gestion/front-binaries/*
|
||||||
- rm -rf /srv/volumes/gestion/back-binaries/*
|
- rm -rf /srv/volumes/gestion/back-binaries/*
|
||||||
- rm -rf /srv/volumes/gestion/tmpdb/*
|
- rm -rf /srv/volumes/gestion/tmpdb/*
|
||||||
- tar -xvf /tmp/${CI_REPO_NAME}-${VERSION}.tar -C /tmp
|
- tar -xvf /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar -C /tmp
|
||||||
- tar -xvf /tmp/front.tar.gz -C /srv/volumes/gestion/front-binaries
|
- 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/back.tar.gz -C /srv/volumes/gestion/back-binaries
|
||||||
- tar -xzvf /tmp/db.tar.gz -C /srv/volumes/gestion/tmpdb
|
- tar -xzvf /tmp/db.tar.gz -C /srv/volumes/gestion/tmpdb
|
||||||
- rm -f /tmp/front.tar.gz
|
- rm -f /tmp/front.tar.gz
|
||||||
- rm -f /tmp/back.tar.gz
|
- rm -f /tmp/back.tar.gz
|
||||||
- rm -f /tmp/db.tar.gz
|
- rm -f /tmp/db.tar.gz
|
||||||
- rm -f /tmp/${CI_REPO_NAME}-${VERSION}.tar
|
- rm -f /tmp/${CI_REPO_NAME}-${NEW_VERSION}.tar
|
||||||
- docker-compose up database
|
- docker-compose up database
|
||||||
- cd /srv/volumes/gestion/tmpdb
|
- cd /srv/volumes/gestion/tmpdb
|
||||||
- npm ci --cache .npm --prefer-offline
|
- npm ci --cache .npm --prefer-offline
|
||||||
|
|||||||
1
database/src/sql/version-0.0.33-0.0.34.sql
Normal file
1
database/src/sql/version-0.0.33-0.0.34.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.34-0.0.35.sql
Normal file
1
database/src/sql/version-0.0.34-0.0.35.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.35-0.0.36.sql
Normal file
1
database/src/sql/version-0.0.35-0.0.36.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.36-0.0.37.sql
Normal file
1
database/src/sql/version-0.0.36-0.0.37.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.37-0.0.38.sql
Normal file
1
database/src/sql/version-0.0.37-0.0.38.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.38-0.0.39.sql
Normal file
1
database/src/sql/version-0.0.38-0.0.39.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.39-0.0.40.sql
Normal file
1
database/src/sql/version-0.0.39-0.0.40.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.40-0.0.41.sql
Normal file
1
database/src/sql/version-0.0.40-0.0.41.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.41-0.0.42.sql
Normal file
1
database/src/sql/version-0.0.41-0.0.42.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.42-0.0.43.sql
Normal file
1
database/src/sql/version-0.0.42-0.0.43.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.43-0.0.44.sql
Normal file
1
database/src/sql/version-0.0.43-0.0.44.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.44-0.0.45.sql
Normal file
1
database/src/sql/version-0.0.44-0.0.45.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.45-0.0.46.sql
Normal file
1
database/src/sql/version-0.0.45-0.0.46.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.46-0.0.47.sql
Normal file
1
database/src/sql/version-0.0.46-0.0.47.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.47-0.0.48.sql
Normal file
1
database/src/sql/version-0.0.47-0.0.48.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.48-0.0.49.sql
Normal file
1
database/src/sql/version-0.0.48-0.0.49.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.49-0.0.50.sql
Normal file
1
database/src/sql/version-0.0.49-0.0.50.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "cicd",
|
"name": "cicd",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.33",
|
"version": "0.0.50",
|
||||||
"description": "Node.js Rest Apis with Express, Sequelize & PostgreSQL",
|
"description": "Node.js Rest Apis with Express, Sequelize & PostgreSQL",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"update:patch": "node scripts/update-version.js -patch",
|
"update:patch": "node scripts/update-version.js -patch",
|
||||||
|
|||||||
Reference in New Issue
Block a user