Si je résume les opérations qui sont effectuées par /scripts/deploy-new-stable-version.sh x.y.z et ses conséquences:
D'abord pour jalhyd:
Dans ../jalhydcheckout master
MAJ de la version de package.json de jalhyd à "x.y.z" et commit de la modif
git tag x.y.z. PUIS git tag stable
Ensuite pour nghyd:
Dans ../nghydcheckout master
npm install et vérification qu'aucune MAJ de dépendance n'est intervenu
MAJ de la version de package.json de jalhyd à "x.y.z" et commit de la modif
git tag stable PUIS git tag x.y.z.
Du côté de gitlab-ci:
Les deux git tag sur nghyd lance les jobs suivant:
jalhyd
install
test
build
deploy: déploiement sur aubes dans $DEPLOY_URL/$CI_COMMIT_REF_NAME (cassiopee/tag)
deploy-stable (seulement sur git tag stable): déploiement sur $DEPLOY_STABLE_URL (cassiopee.g-eau.fr)
releases-version (seulement sur git tag x.y.z.): déploiement des exe sur $DEPLOY_STABLE_URL/cassiopee-releases (cassiopee.g-eau.fr/cassiopee-releases)
En complément le scheduled pipeline lance le job releases-nightly qui déploie aussi les exe nightly sur $DEPLOY_STABLE_URL/cassiopee-releases (cassiopee.g-eau.fr/cassiopee-releases).
By Dorchies David on 2022-04-15T09:08:01 (imported from GitLab)
Les jobs sont actuellement nommés en fonction de la condition qui les déclenche et non en fonction de ce qu'ils font. Pour éviter la confusion, on peut renommer les jobs: deploy en deploy-dev et deploy-stable en deploy-prod
By Dorchies David on 2022-04-15T10:16:52 (imported from GitLab)
La ligne args 4.15.0 /cassiopee-releases indique que les variables $PROD_LOGIN $PROD_HOST sont vides. C'est parce qu'elles sont protégées et que le tag n'est pas "protected".
remote: GitLab: Protected tags cannot be updated.To gitlab-ssh.irstea.fr:cassiopee/nghyd.git ! [remote rejected] 4.15.0 -> 4.15.0 (pre-receive hook declined) ! [remote rejected] stable -> stable (pre-receive hook declined)error: failed to push some refs to 'git@gitlab-ssh.irstea.fr:cassiopee/nghyd.git'
Comme les variables d'environnement sensibles qui concernent la publication sur OVH sont "protected", les tags doivent aussi être "protected" pour que les variables soient accessibles dans le job.
La définition des "protected" tags se fait via un wildcard et le seul moyen de protéger les tags "x.y.z" est d'utiliser le wildcard "*" soit: tous les tags.
Les "protected" tags ne peuvent être ni supprimés, modifiés (on comprend l'esprit de "protected"), or cela pose deux problèmes:
Quid de la situation actuelle où je dois republier le tag 4.15.0 ?
Mais surtout quid de la mise à jour du tag "stable" qui se retrouve "protected" à cause d'un wildcard insuffisamment paramétrable ?
La seule solution que j'ai trouvé est de supprimer la protection des variables d'environnement et de ne pas protéger les tags.
By Dorchies David on 2022-05-05T12:28:19 (imported from GitLab)