Compare commits
97 Commits
ac20b5c2a5
...
v0.0.23
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6139782b4 | ||
|
|
c4297c7c25 | ||
|
|
f89ccb0f63 | ||
|
|
0ba8dd27f0 | ||
|
|
b08a3913e7 | ||
|
|
ac4d180382 | ||
|
|
c5da967d34 | ||
|
|
e916154e4e | ||
|
|
69656f095d | ||
|
|
1cc3d5b5eb | ||
|
|
228ad14fa9 | ||
|
|
067acd0521 | ||
|
|
91af4b5739 | ||
|
|
e267aeb1ca | ||
|
|
4e5e8f0644 | ||
|
|
a253393f58 | ||
|
|
0b1308e8f0 | ||
|
|
838d7a42eb | ||
|
|
55b60e06da | ||
|
|
7ee90cba7c | ||
|
|
bbb29459f6 | ||
|
|
f564b38987 | ||
|
|
78cab3ffe2 | ||
|
|
f8dcae93c5 | ||
|
|
244f46418b | ||
|
|
c334f5ec09 | ||
|
|
9579676b0c | ||
|
|
10dd888152 | ||
|
|
d13bb14f34 | ||
|
|
350d3881f0 | ||
|
|
69b5c0017f | ||
|
|
08d234c8bc | ||
|
|
38a422e305 | ||
|
|
1e2cdf82e6 | ||
|
|
7c88b67418 | ||
|
|
06f135a005 | ||
|
|
8bf8e5448a | ||
|
|
564b5e9f3c | ||
|
|
ed31bcc0e3 | ||
|
|
bd17026643 | ||
|
|
68b3b81273 | ||
|
|
7eedd9549d | ||
|
|
e91c809d23 | ||
|
|
1de56405c4 | ||
|
|
0718c74966 | ||
|
|
e180afb2e3 | ||
|
|
fb305b72b3 | ||
|
|
a7bcffac98 | ||
|
|
62b401b5a1 | ||
|
|
11b254dff0 | ||
|
|
d5a0aa55d5 | ||
|
|
4b5add7403 | ||
|
|
c862b55393 | ||
|
|
bb5aebdc83 | ||
|
|
d169289cb9 | ||
|
|
ca1b8933a6 | ||
|
|
0f10a62426 | ||
|
|
ebcf40efb0 | ||
|
|
066e5565c5 | ||
|
|
91149183a2 | ||
|
|
42ce3769cd | ||
|
|
33ab64f609 | ||
|
|
e63b6c4e3f | ||
|
|
9f5f919ff9 | ||
|
|
bae02f80e2 | ||
|
|
0aa601d144 | ||
|
|
64b3ceff3f | ||
|
|
692c001e9b | ||
|
|
f6019b9b5d | ||
|
|
e4e8eadd6d | ||
|
|
a89ba6a734 | ||
|
|
e00c052ae7 | ||
|
|
e1d0ab7eef | ||
|
|
769550c990 | ||
|
|
42f7166a11 | ||
|
|
9ed7fd6fb2 | ||
|
|
040c01d8ce | ||
|
|
8b85904333 | ||
|
|
c89e394371 | ||
|
|
0b77ae651d | ||
|
|
8219974b54 | ||
|
|
ca2067a124 | ||
|
|
505e4235af | ||
|
|
5334fc423d | ||
|
|
ceb67387f7 | ||
|
|
734d26907d | ||
|
|
ea3b0c9d9b | ||
|
|
844f373084 | ||
|
|
f99a7bedd8 | ||
|
|
27dbfa5c48 | ||
|
|
bac60bd5a4 | ||
|
|
73d814d104 | ||
|
|
7ab3d05e64 | ||
|
|
0d4c6c256c | ||
|
|
6b3edd7429 | ||
|
|
738255a440 | ||
|
|
5bb1111691 |
5
.idea/misc.xml
generated
5
.idea/misc.xml
generated
@@ -1,6 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="openjdk-22" project-jdk-type="JavaSDK">
|
<component name="Black">
|
||||||
|
<option name="sdkName" value="Python 3.11" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="Python 3.11" project-jdk-type="Python SDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,35 +1,33 @@
|
|||||||
when:
|
when:
|
||||||
- event: push
|
- event: push
|
||||||
branch: [ main ] # ← Les tags ne sont sur aucune "branch"
|
branch: [ main ]
|
||||||
- event: pull_request
|
|
||||||
- event: manual
|
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
- &node_image node:18-alpine
|
- &node_image node:18-alpine
|
||||||
- &git_image alpine/git
|
- &git_image alpine/git
|
||||||
- &curl_image curlimages/curl:latest
|
- &curl_image curlimages/curl:latest
|
||||||
- &wdir /tmp/wdir
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Étape 1: Nettoyage du projet, à ajuster
|
# Étape 1: Nettoyage du projet
|
||||||
- name: clean_project
|
- name: clean_project
|
||||||
image: *git_image
|
image: *git_image
|
||||||
commands: |
|
commands: |
|
||||||
|
ls -als /
|
||||||
|
touch /shared/build.txt
|
||||||
|
echo "1 $CI_WORKSPACE"
|
||||||
rm -rf dist
|
rm -rf dist
|
||||||
mkdir *wdir
|
rm -f $CI_WORKSPACE/build/version.env
|
||||||
ls *wdir
|
echo "✅ Nettoyage terminé"
|
||||||
rm -f *wdir/version.env
|
depends_on: [ ]
|
||||||
volumes:
|
|
||||||
- wdir:wdir
|
|
||||||
|
|
||||||
|
# Étape 2: Analyser le message du commit
|
||||||
- name: prepare
|
- name: prepare
|
||||||
image: *git_image
|
image: *git_image
|
||||||
commands: |
|
commands: |
|
||||||
# Récupérer le message du commit
|
|
||||||
COMMIT_MSG=$(git log -1 --pretty=%B)
|
COMMIT_MSG=$(git log -1 --pretty=%B)
|
||||||
echo "📝 Message: $COMMIT_MSG"
|
echo "📝 Message: $COMMIT_MSG"
|
||||||
|
|
||||||
# Déterminer le type de version
|
|
||||||
if echo "$COMMIT_MSG" | grep -qE "^(major)(\(.*\))?!:"; then
|
if echo "$COMMIT_MSG" | grep -qE "^(major)(\(.*\))?!:"; then
|
||||||
echo "version_type=major" >> $CI_WORKSPACE/version.env
|
echo "version_type=major" >> $CI_WORKSPACE/version.env
|
||||||
echo "🔴 MAJOR - Breaking change"
|
echo "🔴 MAJOR - Breaking change"
|
||||||
@@ -41,18 +39,18 @@ steps:
|
|||||||
echo "🟢 PATCH - Correction"
|
echo "🟢 PATCH - Correction"
|
||||||
else
|
else
|
||||||
echo "version_type=none" >> $CI_WORKSPACE/version.env
|
echo "version_type=none" >> $CI_WORKSPACE/version.env
|
||||||
echo "⚠️ Aucun changement de version"
|
echo "⚠️ Aucun changement de version"
|
||||||
fi
|
fi
|
||||||
|
echo "build_dir=$CI_WORKSPACE/build" >> $CI_WORKSPACE/version.env
|
||||||
depends_on: [ clean_project ]
|
depends_on: [ clean_project ]
|
||||||
|
|
||||||
# Étape 4: Mettre à jour la version (seulement si nécessaire)
|
# Étape 3: Mettre à jour la version
|
||||||
- name: update_version
|
- name: update_version
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands: |
|
commands: |
|
||||||
ls -alsR database
|
|
||||||
mkdir -p database/src/sql
|
|
||||||
npm ci --cache .npm --prefer-offline
|
|
||||||
source $CI_WORKSPACE/version.env
|
source $CI_WORKSPACE/version.env
|
||||||
|
npm ci --cache .npm --prefer-offline
|
||||||
|
|
||||||
if [ "$version_type" != "none" ]; then
|
if [ "$version_type" != "none" ]; then
|
||||||
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
||||||
echo "📦 Version actuelle: $CURRENT_VERSION"
|
echo "📦 Version actuelle: $CURRENT_VERSION"
|
||||||
@@ -61,14 +59,14 @@ steps:
|
|||||||
echo "🆕 Nouvelle version: $NEW_VERSION"
|
echo "🆕 Nouvelle version: $NEW_VERSION"
|
||||||
echo "NEW_VERSION=$NEW_VERSION" >> $CI_WORKSPACE/version.env
|
echo "NEW_VERSION=$NEW_VERSION" >> $CI_WORKSPACE/version.env
|
||||||
echo "CURRENT_VERSION=$CURRENT_VERSION" >> $CI_WORKSPACE/version.env
|
echo "CURRENT_VERSION=$CURRENT_VERSION" >> $CI_WORKSPACE/version.env
|
||||||
echo "artifact=${CI_REPO_NAME}-$NEW_VERSION.tar" >> $CI_WORKSPACE/version.env
|
echo "ARTIFACT=$CI_REPO_NAME-$NEW_VERSION" >> $CI_WORKSPACE/version.env
|
||||||
else
|
else
|
||||||
echo "artifact=no-artifact" >> $CI_WORKSPACE/version.env
|
echo "ARTIFACT=no-artifact" >> $CI_WORKSPACE/version.env
|
||||||
echo "⏭️ Pas de mise à jour de version"
|
echo "⏭️ Pas de mise à jour de version"
|
||||||
fi
|
fi
|
||||||
depends_on: [ prepare ]
|
depends_on: [ prepare ]
|
||||||
|
|
||||||
# Étape 1: Installation des dépendances
|
# Étape 4: Build de l'application
|
||||||
- name: build
|
- name: build
|
||||||
image: *node_image
|
image: *node_image
|
||||||
commands:
|
commands:
|
||||||
@@ -76,28 +74,34 @@ steps:
|
|||||||
- npm run build
|
- npm run build
|
||||||
depends_on: [ update_version ]
|
depends_on: [ update_version ]
|
||||||
|
|
||||||
|
# Étape 5: Package des artefacts
|
||||||
|
|
||||||
# Étape 6: Package des artefacts
|
|
||||||
- name: package
|
- name: package
|
||||||
image: *curl_image
|
image: *node_image
|
||||||
commands: |
|
commands: |
|
||||||
more $CI_WORKSPACE/version.env
|
|
||||||
source $CI_WORKSPACE/version.env
|
source $CI_WORKSPACE/version.env
|
||||||
ls -alsR ${CI_WORKSPACE}/artifacts/
|
ARTIFACT_PATH=$CI_WORKSPACE/artifacts/$NEW_VERSION
|
||||||
|
ARTIFACT_FILE=$CI_WORKSPACE/artifacts/$ARTIFACT.tar.gz
|
||||||
|
echo "ARTIFACT_PATH=$ARTIFACT_PATH" >> $CI_WORKSPACE/version.env
|
||||||
|
echo "ARTIFACT_FILE=$ARTIFACT_FILE" >> $CI_WORKSPACE/version.env
|
||||||
if [ "$version_type" != "none" ]; then
|
if [ "$version_type" != "none" ]; then
|
||||||
WDIR=${CI_WORKSPACE}/artifacts/$NEW_VERSION
|
mkdir -p $ARTIFACT_PATH
|
||||||
echo "create work directory: $WDIR"
|
|
||||||
mkdir -p $WDIR
|
# Créer les archives individuelles
|
||||||
ls -alsR
|
tar -czf $ARTIFACT_PATH/front.tar.gz -C frontend/dist . 2>/dev/null || echo "⚠️ frontend/dist vide"
|
||||||
tar -czf $WDIR/db.tar.gz -C database .
|
tar -czf $ARTIFACT_PATH/back.tar.gz -C backend/dist . 2>/dev/null || echo "⚠️ backend/dist vide"
|
||||||
echo "create final artifact: ${CI_WORKSPACE}/artifacts/$artifact"
|
tar -czf $ARTIFACT_PATH/db.tar.gz -C database src *.json 2>/dev/null || echo "⚠️ database vide"
|
||||||
tar -cf ${CI_WORKSPACE}/artifacts/$artifact -C $WDIR .
|
|
||||||
ls -als ${CI_WORKSPACE}/artifacts/$artifact
|
# Créer l'artefact final
|
||||||
|
cd $ARTIFACT_PATH
|
||||||
|
tar -cf $ARTIFACT_FILE .
|
||||||
|
|
||||||
|
echo "✅ Artefact créé: $ARTIFACT_FILE"
|
||||||
|
ls -la $ARTIFACT_PATH
|
||||||
fi
|
fi
|
||||||
ls -alsR ${CI_WORKSPACE}/artifacts/
|
ls -als
|
||||||
depends_on: [ build ]
|
depends_on: [ build ]
|
||||||
|
|
||||||
|
# Étape 6: Publication dans Nexus
|
||||||
- name: publish
|
- name: publish
|
||||||
image: *curl_image
|
image: *curl_image
|
||||||
environment:
|
environment:
|
||||||
@@ -105,67 +109,126 @@ steps:
|
|||||||
from_secret: nexus_username
|
from_secret: nexus_username
|
||||||
NEXUS_PASSWORD:
|
NEXUS_PASSWORD:
|
||||||
from_secret: nexus_password
|
from_secret: nexus_password
|
||||||
|
NEXUS_REPOSITORY: domaine-passignat
|
||||||
commands: |
|
commands: |
|
||||||
source $CI_WORKSPACE/version.env
|
source $CI_WORKSPACE/version.env
|
||||||
echo "📦 Publication de la version $NEW_VERSION : $artifact"
|
|
||||||
ls -alsR ${CI_WORKSPACE}/artifacts
|
|
||||||
|
|
||||||
curl -v \
|
if [ "$version_type" != "none" ]; then
|
||||||
-u ${NEXUS_USERNAME}:${NEXUS_PASSWORD} \
|
echo "📦 Publication de la version $NEW_VERSION : $ARTIFACT"
|
||||||
-F "raw.directory=apps" \
|
if [ ! -f "$ARTIFACT_FILE" ]; then
|
||||||
-F "raw.asset1=@${CI_WORKSPACE}/artifacts/$artifact" \
|
echo "❌ Fichier introuvable: $ARTIFACT_FILE"
|
||||||
-F "raw.asset1.filename=$artifact" \
|
ls -la $ARTIFACT_FILE
|
||||||
http://nexus/service/rest/v1/components?repository=domaine-passignat
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -v --fail \
|
||||||
|
-u "$NEXUS_USERNAME:$NEXUS_PASSWORD" \
|
||||||
|
-F "raw.directory=apps/$CI_REPO_NAME/$NEW_VERSION" \
|
||||||
|
-F "raw.asset1=@$ARTIFACT_FILE" \
|
||||||
|
-F "raw.asset1.filename=$ARTIFACT" \
|
||||||
|
http://nexus.cicd.exygen.fr/service/rest/v1/components?repository=$NEXUS_REPOSITORY
|
||||||
|
echo "✅ Artefact publié"
|
||||||
|
else
|
||||||
|
echo "⏭️ Pas de publication (version_type=none)"
|
||||||
|
fi
|
||||||
|
|
||||||
depends_on: [ package ]
|
depends_on: [ package ]
|
||||||
# Étape 5: Commit et tag
|
|
||||||
|
# Étape 7: Commit et tag (après publication)
|
||||||
- name: commit_tag
|
- name: commit_tag
|
||||||
image: *git_image
|
image: *git_image
|
||||||
environment:
|
environment:
|
||||||
GITEA_TOKEN:
|
GITEA_TOKEN:
|
||||||
from_secret: gitea_token
|
from_secret: gitea_token
|
||||||
commands: |
|
commands: |
|
||||||
# Charger les variables
|
|
||||||
more $CI_WORKSPACE/version.env
|
|
||||||
source $CI_WORKSPACE/version.env
|
source $CI_WORKSPACE/version.env
|
||||||
echo "version type: $version_type"
|
|
||||||
|
|
||||||
if [ "$version_type" != "none" ]; then
|
if [ "$version_type" != "none" ]; then
|
||||||
echo "http://oauth2:$GITEA_TOKEN@gitea.cicd.exygen.fr/${CI_REPO_OWNER}/${CI_REPO_NAME}.git"
|
git remote set-url origin http://oauth2:$GITEA_TOKEN@gitea.cicd.exygen.fr/$CI_REPO_OWNER/$CI_REPO_NAME.git
|
||||||
git remote set-url origin http://oauth2:$GITEA_TOKEN@gitea.cicd.exygen.fr/${CI_REPO_OWNER}/${CI_REPO_NAME}.git
|
|
||||||
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"
|
||||||
|
|
||||||
# Ajouter le remote avec token
|
echo "ℹ️ Save pipeline info"
|
||||||
|
mkdir -p .woodpecker/builds/
|
||||||
|
echo NEW_VERSION=$NEW_VERSION > .woodpecker/builds/$CI_PIPELINE_NUMBER
|
||||||
|
git add .woodpecker/builds/$CI_PIPELINE_NUMBER 2>/dev/null || true
|
||||||
|
|
||||||
# Ajouter le package.json modifié
|
echo "ℹ️ add generated files (sql)"
|
||||||
git add ./database/src/sql/*.sql
|
git add ./database/src/sql/*.sql 2>/dev/null || true
|
||||||
|
git add package.json 2>/dev/null || true
|
||||||
|
|
||||||
# Vérifier s'il y a des changements
|
# Commiter uniquement s'il y a des changements
|
||||||
# if ! git diff --cached --quiet; then
|
if ! git diff --cached --quiet; then
|
||||||
# Commiter la nouvelle version
|
git commit -m "chore: release v$NEW_VERSION [skip ci]"
|
||||||
git commit -m "Pipeline: update current version v$NEW_VERSION [skip ci]"
|
git push origin main
|
||||||
git push origin main
|
echo "✅ Commit créé"
|
||||||
echo "✅ Commit new version"
|
else
|
||||||
|
echo "ℹ️ Aucun changement à commiter"
|
||||||
|
fi
|
||||||
|
|
||||||
# Créer le tag
|
# Créer et pousser le tag
|
||||||
git tag -a "v$NEW_VERSION" -m "Release version v$NEW_VERSION"
|
git tag -a "v$NEW_VERSION" -m "Release version v$NEW_VERSION"
|
||||||
git push origin "v$NEW_VERSION"
|
git push origin "v$NEW_VERSION"
|
||||||
echo "🏷️ Tag v$NEW_VERSION created and pushed"
|
echo "🏷️ Tag v$NEW_VERSION créé et poussé"
|
||||||
else
|
else
|
||||||
echo "⚠️ Aucun changement à commiter"
|
echo "⚠️ Aucun changement à commiter"
|
||||||
fi
|
fi
|
||||||
|
ls -als
|
||||||
depends_on: [ publish ]
|
depends_on: [ publish ]
|
||||||
|
|
||||||
|
# Étape 8: Déclencher le déploiement
|
||||||
- name: trigger-deployment
|
- name: trigger-deployment
|
||||||
image: woodpeckerci/plugin-trigger:latest
|
image: curlimages/curl:latest
|
||||||
|
environment:
|
||||||
|
WOODPECKER_TOKEN:
|
||||||
|
from_secret: woodpecker_token
|
||||||
|
commands: |
|
||||||
|
source $CI_WORKSPACE/version.env
|
||||||
|
if [ "$version_type" != "none" ]; then
|
||||||
|
echo "🚀 Déclenchement du déploiement pour la version $NEW_VERSION"
|
||||||
|
echo "🚀 $CI_REPO_OWNER"
|
||||||
|
echo "🚀 $CI_REPO_NAME"
|
||||||
|
echo "http://woodpecker.cicd.exygen.fr/api/repos/$CI_REPO_OWNER/$CI_REPO_NAME/pipelines"
|
||||||
|
curl -v --fail -X POST \
|
||||||
|
"http://woodpecker.cicd.exygen.fr/api/repos/$CI_REPO_OWNER/$CI_REPO_NAME/pipelines" \
|
||||||
|
-H "Authorization: Bearer $WOODPECKER_TOKEN" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"branch": "main",
|
||||||
|
"event": "deployment",
|
||||||
|
"deploy_to": "production",
|
||||||
|
"deploy_id": "'$CI_PIPELINE_NUMBER'",
|
||||||
|
"ref": "refs/tags/v'$NEW_VERSION'"
|
||||||
|
}'
|
||||||
|
echo "✅ Événement deployment déclenché"
|
||||||
|
else
|
||||||
|
echo "⏭️ Pas de déclenchement (version_type=none)"
|
||||||
|
fi
|
||||||
|
depends_on: [ commit_tag ]
|
||||||
|
when:
|
||||||
|
- event: never
|
||||||
|
|
||||||
|
|
||||||
|
- name: trigger-deployment2
|
||||||
|
image: woodpeckerci/plugin-trigger
|
||||||
settings:
|
settings:
|
||||||
|
# L'URL de votre serveur Woodpecker
|
||||||
|
server: https://woodpecker.cicd.exygen.fr
|
||||||
|
# Le token d'API (doit être stocké comme secret)
|
||||||
|
branche: main
|
||||||
|
deploy_pipeline: ${CI_PIPELINE_NUMBER}
|
||||||
token:
|
token:
|
||||||
from_secret: woodpecker_token
|
from_secret: woodpecker_token
|
||||||
server: https://woodpecker.cicd.exygen.fr # ← Ajoute l'URL du serveur
|
# Le dépôt cible, avec la branche optionnelle (format propriétaire/répertoire[@branche])
|
||||||
repo: ${CI_REPO_OWNER}/${CI_REPO_NAME}
|
repo: domaine-passignat/gestion
|
||||||
branch: main
|
# Paramètre CLÉ : active l'événement 'deployment' et spécifie l'environnement cible
|
||||||
event: deployment
|
deploy_to: production
|
||||||
deploy_id: ${CI_PIPELINE_NUMBER} # ← Peut être optionnel
|
# (Optionnel) Transmettre des variables au pipeline déclenché (ex: une version)
|
||||||
deploy_to: production # ← Renommé en "environment" parfois
|
params:
|
||||||
wait: true # ← Attend la fin du déploiement
|
- VERSION=${NEW_VERSION}
|
||||||
depends_on: [ publish ]
|
# (Optionnel) Attendre la fin du pipeline déclenché
|
||||||
|
wait: true
|
||||||
|
# Déclenche cette étape uniquement après une publication réussie
|
||||||
|
depends_on: [ commit_tag ]
|
||||||
|
when:
|
||||||
|
- event: never
|
||||||
|
|||||||
1
.woodpecker/builds/95
Normal file
1
.woodpecker/builds/95
Normal file
@@ -0,0 +1 @@
|
|||||||
|
0.0.21
|
||||||
1
.woodpecker/builds/97
Normal file
1
.woodpecker/builds/97
Normal file
@@ -0,0 +1 @@
|
|||||||
|
NEW_VERSION=0.0.22
|
||||||
1
.woodpecker/builds/98
Normal file
1
.woodpecker/builds/98
Normal file
@@ -0,0 +1 @@
|
|||||||
|
NEW_VERSION=0.0.23
|
||||||
@@ -1,13 +1,18 @@
|
|||||||
# Documentation: https://woodpecker-ci.org/docs/usage/workflow-syntax
|
# Documentation: https://woodpecker-ci.org/docs/usage/workflow-syntax
|
||||||
|
|
||||||
when:
|
when:
|
||||||
- event: deployment
|
- event: [ deployment,manual ]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: get-artifact
|
- name: get-artifact
|
||||||
image: curlimages/curl:latest
|
image: curlimages/curl:latest
|
||||||
commands: |
|
commands: |
|
||||||
VERSION=${CI_COMMIT_TAG#v}
|
echo CI_PIPELINE_PARENT=$CI_PIPELINE_PARENT
|
||||||
|
echo CI_COMMIT_TAG=$CI_COMMIT_TAG
|
||||||
|
echo CI_PIPELINE_EVENT=$CI_PIPELINE_EVENT
|
||||||
|
echo CI_PIPELINE_NUMBER=$CI_PIPELINE_NUMBER
|
||||||
|
echo CI_PREV_PIPELINE_NUMBER=$CI_PREV_PIPELINE_NUMBER
|
||||||
|
echo CI_PREV_PIPELINE_PARENT=$CI_PREV_PIPELINE_PARENT
|
||||||
curl -o /tmp/${CI_REPO_NAME}-${VERSION}.tar \
|
curl -o /tmp/${CI_REPO_NAME}-${VERSION}.tar \
|
||||||
"https://nexus.cicd.exygen.fr/repository/domaine-passignat/apps/${CI_REPO_NAME}/${VERSION}/${CI_REPO_NAME}-${VERSION}.tar"
|
"https://nexus.cicd.exygen.fr/repository/domaine-passignat/apps/${CI_REPO_NAME}/${VERSION}/${CI_REPO_NAME}-${VERSION}.tar"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.10-0.0.11.sql
Normal file
1
database/src/sql/version-0.0.10-0.0.11.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.11-0.0.12.sql
Normal file
1
database/src/sql/version-0.0.11-0.0.12.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.12-0.0.13.sql
Normal file
1
database/src/sql/version-0.0.12-0.0.13.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.13-0.0.14.sql
Normal file
1
database/src/sql/version-0.0.13-0.0.14.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.14-0.0.15.sql
Normal file
1
database/src/sql/version-0.0.14-0.0.15.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.15-0.0.16.sql
Normal file
1
database/src/sql/version-0.0.15-0.0.16.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.16-0.0.17.sql
Normal file
1
database/src/sql/version-0.0.16-0.0.17.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.17-0.0.18.sql
Normal file
1
database/src/sql/version-0.0.17-0.0.18.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.18-0.0.19.sql
Normal file
1
database/src/sql/version-0.0.18-0.0.19.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.19-0.0.20.sql
Normal file
1
database/src/sql/version-0.0.19-0.0.20.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
0
database/src/sql/version-0.0.2-0.0.3.sql
Normal file
0
database/src/sql/version-0.0.2-0.0.3.sql
Normal file
1
database/src/sql/version-0.0.20-0.0.21.sql
Normal file
1
database/src/sql/version-0.0.20-0.0.21.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.21-0.0.22.sql
Normal file
1
database/src/sql/version-0.0.21-0.0.22.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.22-0.0.23.sql
Normal file
1
database/src/sql/version-0.0.22-0.0.23.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.3-0.0.4.sql
Normal file
1
database/src/sql/version-0.0.3-0.0.4.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.4-0.0.5.sql
Normal file
1
database/src/sql/version-0.0.4-0.0.5.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.5-0.0.6.sql
Normal file
1
database/src/sql/version-0.0.5-0.0.6.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.6-0.0.7.sql
Normal file
1
database/src/sql/version-0.0.6-0.0.7.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.7-0.0.8.sql
Normal file
1
database/src/sql/version-0.0.7-0.0.8.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.8-0.0.9.sql
Normal file
1
database/src/sql/version-0.0.8-0.0.9.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
1
database/src/sql/version-0.0.9-0.0.10.sql
Normal file
1
database/src/sql/version-0.0.9-0.0.10.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-- none
|
||||||
@@ -5,13 +5,12 @@
|
|||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["front/*"]
|
|
||||||
},
|
},
|
||||||
"allowSyntheticDefaultImports": true,
|
"allowSyntheticDefaultImports": true,
|
||||||
"jsx": "preserve"
|
"jsx": "preserve"
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"frontend/**/*"
|
"scripts/*"
|
||||||
],
|
],
|
||||||
"exclude": ["node_modules", "dist"]
|
"exclude": ["node_modules", "dist"]
|
||||||
}
|
}
|
||||||
|
|||||||
8
package-lock.json
generated
8
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@cicd",
|
"name": "cicd",
|
||||||
"version": "2.7.15",
|
"version": "0.0.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@cicd",
|
"name": "cicd",
|
||||||
"version": "2.7.15",
|
"version": "0.0.2",
|
||||||
"license": "Exygen",
|
"license": "Exygen",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "<=25.9.0",
|
"node": "<=25.9.0",
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "cicd",
|
"name": "cicd",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.1",
|
"version": "0.0.23",
|
||||||
"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",
|
||||||
@@ -15,5 +15,11 @@
|
|||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "Stephane Passignat",
|
"author": "Stephane Passignat",
|
||||||
"license": "Exygen"
|
"license": "Exygen",
|
||||||
|
"main": "versions.js",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "http://gitea.cicd.exygen.fr/stephane/test-cicd.git"
|
||||||
|
},
|
||||||
|
"type": "commonjs"
|
||||||
}
|
}
|
||||||
@@ -1,151 +0,0 @@
|
|||||||
console.log(process.cwd());
|
|
||||||
const fs = require('fs');
|
|
||||||
const builder = require('./generators/generate-jsdoc');
|
|
||||||
const plant = require('./generators/generate-plantuml');
|
|
||||||
const data = require('./generators/generate-namedlist');
|
|
||||||
const tax = require('./generators/generate-tax');
|
|
||||||
const classesFront = require('./generators/generate-class');
|
|
||||||
const classesBack = require('./generators/generate-class-back');
|
|
||||||
const path = require('path');
|
|
||||||
let path1 = path.join("dist", "back");
|
|
||||||
if (!fs.existsSync(path1)) {
|
|
||||||
fs.mkdirSync(path1, {recursive: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fonction pour copier un fichier
|
|
||||||
function copyFile(source, destination) {
|
|
||||||
fs.mkdirSync(path.dirname(destination), {recursive: true});
|
|
||||||
fs.copyFileSync(source, destination);
|
|
||||||
}
|
|
||||||
|
|
||||||
function copyResources() {
|
|
||||||
// Chemins source et destination
|
|
||||||
const resources = [{
|
|
||||||
source: path.join(__dirname, "config", `front-${env}.json`),
|
|
||||||
target: path.join(__dirname, "front", `config.json`)
|
|
||||||
}, {
|
|
||||||
source: path.join(__dirname, "config", `back-${env}.json`),
|
|
||||||
target: path.join(__dirname, "back", `config.json`)
|
|
||||||
}, {
|
|
||||||
source: path.join(__dirname, "config", `front-${env}.json`),
|
|
||||||
target: path.join(__dirname, "dist/front", `config.json`)
|
|
||||||
}, {
|
|
||||||
source: path.join(__dirname, "config", `back-${env}.json`),
|
|
||||||
target: path.join(__dirname, "dist/back", `config.json`)
|
|
||||||
}, {
|
|
||||||
source: path.join(__dirname, "package.json"),
|
|
||||||
target: path.join(__dirname, "dist", "package.json")
|
|
||||||
}, {
|
|
||||||
source: path.join(__dirname, "package-lock.json"),
|
|
||||||
target: path.join(__dirname, "dist", "package-lock.json")
|
|
||||||
}, {
|
|
||||||
source: path.join(__dirname, "vite.config.js"),
|
|
||||||
target: path.join(__dirname, "dist", "vite.config.js")
|
|
||||||
}];
|
|
||||||
for (const resource of resources) {
|
|
||||||
copyFile(resource.source, resource.target);
|
|
||||||
}
|
|
||||||
for (const resource of resources) {
|
|
||||||
if (resource.target.endsWith("config.json")) {
|
|
||||||
setConfigVersion(resource.target);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fs.mkdirSync(path.dirname("dist/model"), {recursive: true});
|
|
||||||
fs.mkdirSync(path.dirname("dist/back"), {recursive: true});
|
|
||||||
fs.mkdirSync(path.dirname("dist/app"), {recursive: true});
|
|
||||||
fs.mkdirSync(path.dirname("dist/data"), {recursive: true});
|
|
||||||
fs.cpSync("back", "dist/back", {recursive: true});
|
|
||||||
fs.cpSync("model", "dist/model", {recursive: true});
|
|
||||||
fs.cpSync("app", "dist/app", {recursive: true});
|
|
||||||
fs.cpSync("data", "dist/data", {recursive: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function updateVersion(major = false, minor = false, patch = true) {
|
|
||||||
let obj;
|
|
||||||
try {
|
|
||||||
obj = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
|
||||||
let currentVersion = obj.version;
|
|
||||||
|
|
||||||
let versions = currentVersion.split('.');
|
|
||||||
let majorVersion = versions[0];
|
|
||||||
let minorVersion = versions[1];
|
|
||||||
let patchVersion = versions[2];
|
|
||||||
if (major) {
|
|
||||||
let number = Number.parseInt(majorVersion);
|
|
||||||
number++;
|
|
||||||
versions[0] = number;
|
|
||||||
versions[1] = 0;
|
|
||||||
versions[2] = 0;
|
|
||||||
} else if (minor) {
|
|
||||||
let number = Number.parseInt(minorVersion);
|
|
||||||
number++;
|
|
||||||
versions[0] = majorVersion;
|
|
||||||
versions[1] = number;
|
|
||||||
versions[2] = 0;
|
|
||||||
} else if (patch) {
|
|
||||||
let number = Number.parseInt(patchVersion);
|
|
||||||
number++;
|
|
||||||
versions[0] = majorVersion;
|
|
||||||
versions[1] = minorVersion;
|
|
||||||
versions[2] = number;
|
|
||||||
}
|
|
||||||
let newVersion = versions.join('.');
|
|
||||||
obj.version = newVersion;
|
|
||||||
|
|
||||||
fs.writeFileSync("./package.json", JSON.stringify(obj, null, "\t"), 'utf8');
|
|
||||||
let newVar = {
|
|
||||||
oldVersion: currentVersion,
|
|
||||||
newVersion: newVersion
|
|
||||||
};
|
|
||||||
return newVar;
|
|
||||||
} catch (e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function setConfigVersion(resource) {
|
|
||||||
let src;
|
|
||||||
try {
|
|
||||||
src = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
|
||||||
let versions = src.version;
|
|
||||||
target = JSON.parse(fs.readFileSync(resource, 'utf8'));
|
|
||||||
target.version = versions;
|
|
||||||
fs.writeFileSync(resource, JSON.stringify(target), 'utf8')
|
|
||||||
} catch (e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let env = "local";
|
|
||||||
let major = false;
|
|
||||||
let minor = false;
|
|
||||||
let patch = false;
|
|
||||||
process.argv.forEach(function (val, index, array) {
|
|
||||||
if (val === "-local") {
|
|
||||||
env = "local"
|
|
||||||
} else if (val === "-prod") {
|
|
||||||
env = "prod";
|
|
||||||
} else if (val === "-patch") {
|
|
||||||
patch = true;
|
|
||||||
} else if (val === "-major") {
|
|
||||||
major = true;
|
|
||||||
} else if (val === "-minor") {
|
|
||||||
minor = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (patch||minor||major) {
|
|
||||||
let updateVersion1 = updateVersion(major,minor,patch);
|
|
||||||
let src = path.join(__dirname, "back", "models", "current.sql");
|
|
||||||
let tgt = path.join(__dirname, "back", "models", "sql", `version-${updateVersion1.oldVersion}-${updateVersion1.newVersion}.sql`);
|
|
||||||
fs.copyFileSync(src, tgt);
|
|
||||||
let writeStream = fs.createWriteStream(src);
|
|
||||||
writeStream.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
copyResources();
|
|
||||||
builder.generateJSDocTypes('./model/DataModel.json', './types.js');
|
|
||||||
plant.generatePlantUML('./model/DataModel.json', './model.puml');
|
|
||||||
// data.generateTVA("./tva_agriculture_detaillee.csv","./data/NamedList.json");
|
|
||||||
// tax.generateTax("./tva_agriculture_detaillee.csv","./data/Tax.json");
|
|
||||||
classesFront.generateClasses('./model/DataModel.json',"./front/data/");
|
|
||||||
classesBack.generateClasses('./model/DataModel.json',"./back/data/");
|
|
||||||
@@ -73,8 +73,13 @@ process.argv.forEach(function (val, index, array) {
|
|||||||
|
|
||||||
if (patch||minor||major) {
|
if (patch||minor||major) {
|
||||||
let updateVersion1 = updateVersion(major,minor,patch);
|
let updateVersion1 = updateVersion(major,minor,patch);
|
||||||
|
let sql = path.join(__dirname,"..", "database", "src","sql");
|
||||||
let src = path.join(__dirname,"..", "database", "current.sql");
|
let src = path.join(__dirname,"..", "database", "current.sql");
|
||||||
let tgt = path.join(__dirname,"..", "database", "src", "sql", `version-${updateVersion1.oldVersion}-${updateVersion1.newVersion}.sql`);
|
let tgt = path.join(__dirname,"..", "database", "src", "sql", `version-${updateVersion1.oldVersion}-${updateVersion1.newVersion}.sql`);
|
||||||
|
fs.mkdirSync(sql,{ recursive: true });
|
||||||
|
if(!fs.existsSync(src)){
|
||||||
|
fs.appendFileSync(sql, "", 'utf8');
|
||||||
|
}
|
||||||
fs.copyFileSync(src, tgt);
|
fs.copyFileSync(src, tgt);
|
||||||
let writeStream = fs.createWriteStream(src);
|
let writeStream = fs.createWriteStream(src);
|
||||||
writeStream.close();
|
writeStream.close();
|
||||||
|
|||||||
Reference in New Issue
Block a user