Page 1 sur 1

Automatisation build-upload silencieux ?

Publié : 17 déc. 2018 - 16:18
par olaplanche
- Version de WAPT installée : 1.6.2.7
- OS du serveur : Debian Stretch
- OS de la machine d'administration/création des paquets : Windows 10

Bonjour,

Je souhaiterais savoir s'il était possible de scripter de manière silencieuse la création et l'upload d'un paquet ?
Mon idée et d'automatiser complétement la mise à jour d'un paquet si possible...

Quand j'utilise la commande suivante : wapt-get.exe build-upload lepathdemonpaquet il me demande via un prompt le mot de passe de ma clé privé. Je me doute que ce comportement est souhaité, mais est-il possible de s'y prendre autrement ?

Merci

Re: Automatisation build-upload silencieux ?

Publié : 17 déc. 2018 - 22:27
par sfonteneau
Exemple de code qui edit un paquet, effectue l'update package puis rebuild le paquet en maturity VALIDITY-WAIT

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
from waptpackage import *
from common import *

devrep = makepath('c:','waptdev')
packagename='smp-firefox-esr'
repcomplet=makepath(devrep,packagename)
myWapt = Wapt(config_filename=makepath(r'C:\Users\Administrateur\AppData\Local\waptconsole\waptconsole.ini'))
if isdir(repcomplet):
    remove_tree(repcomplet)
myWapt.edit_package(packagename,target_directory=repcomplet)
thepackage = PackageEntry(waptfile=repcomplet)
thepackage.call_setup_hook('update_package',wapt_context=myWapt)
myWapt.build_upload(repcomplet,private_key_passwd=ur'passwordkey',wapt_server_user='admin',wapt_server_passwd=ur'passwordserver',set_maturity='VALIDITY-WAIT')

Re: Automatisation build-upload silencieux ?

Publié : 18 déc. 2018 - 11:48
par olaplanche
Je me permets de commenter le code pour savoir si j'ai bien compris :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
from waptpackage import *
from common import *

# Défini la variable devrep avec le chemin "c:\waptdev"
devrep = makepath('c:','waptdev')
# Défini la variable packagname avec le nom du paquet "smp-firefox-esr"
packagename='smp-firefox-esr'
# Défini la variable repcomplet avec la concaténation des variables devrep et packagename
repcomplet=makepath(devrep,packagename)
# Défini la variable myWapt avec le chemin du fichier de conf local de ma console
myWapt = Wapt(config_filename=makepath(r'C:\Users\Administrateur\AppData\Local\waptconsole\waptconsole.ini'))
# Supprimer le dossier local du package si il existe
if isdir(repcomplet):
    remove_tree(repcomplet)
# Télécharger et extraire le package depuis le repository wapt dans le dossier "repcomlet"
myWapt.edit_package(packagename,target_directory=repcomplet)
# Défini la variable thepackage avec les infos récupérées depuis le dossier local du package
thepackage = PackageEntry(waptfile=repcomplet)
# Appel de la fonction update_package du paquet en question
thepackage.call_setup_hook('update_package',wapt_context=myWapt)
# build et upload du paquet mis à jour sur le repository wapt
myWapt.build_upload(repcomplet,private_key_passwd=ur'passwordkey',wapt_server_user='admin',wapt_server_passwd=ur'passwordserver',set_maturity='VALIDITY-WAIT')
Si je ne me trompe pas il faut alors ajouter la fonction update_package dans le paquet souhaité et ensuite d'enregistrer le script python ci-dessus personnalisé pour le paquet souhaité et de l’exécuter dans une tâche planifiée par exemple ?!

Merci

Re: Automatisation build-upload silencieux ?

Publié : 18 déc. 2018 - 13:38
par sfonteneau
c'est ça

Re: Automatisation build-upload silencieux ?

Publié : 19 déc. 2018 - 14:54
par olaplanche
Bonjour,

J'obtiens l'erreur suivante en exécutant mon script python :

Code : Tout sélectionner

wapt-wAdministratif_8.4-64_all.wapt[================================] 26555304/26555304 - 00:00:00
No handlers could be found for logger "root"
Traceback (most recent call last):
  File "e:\update_package_wapt-wAdministratif.py", line 23, in <module>
    myWapt.edit_package(packagename,target_directory=repcomplet)
  File "C:\wapt\common.py", line 6228, in edit_package
    raise Exception(u'Unable to unzip package in %s' % target_directory)
Exception: Unable to unzip package in c:\waptdev\wapt-wAdministratif
Je l'exécute en tant qu'administrateur mais on dirait qu'il ne peut pas décompresser le paquet...

Une idée ?

edit : En fait il ne télécharge pas du tout le paquet et je ne peux pas non plus par la console lorsque je clique sur éditer un paquet...

Merci

Re: Automatisation build-upload silencieux ?

Publié : 22 déc. 2018 - 11:34
par sfonteneau
waptdev existe ?

Re: Automatisation build-upload silencieux ?

Publié : 08 janv. 2019 - 09:17
par olaplanche
Bonjour,

Oui le dossier c:\waptdev existe bien.

P.S. : Je souhaite une très bonne année 2019 à toute l'équipe et vous remercie encore pour ce fabuleux outil !

Re: Automatisation build-upload silencieux ?

Publié : 15 janv. 2019 - 14:42
par olaplanche
Je viens de me replonger sur ce problème et je n'arrive pas à reproduire l'erreur citée précédemment...
A la place, je constate un nouveau comportement étrange :

Dans mon dossier waptdev, le dossier de mon paquet est nommé "wapt-wAdministratif-wapt", le nom de mon paquet dans son fichier control et dans la console est "wapt-wAdministratif". Lors de l’exécution du script python ci-dessus, le dossier wapt-wAdministratif est créé dans mon dossier waptdev...
ok pourquoi pas, jusque là j'arrive à comprendre. Actuellement le script plante sur la fonction update du paquet.
Le plus étrange et que lorsque j'édite mon paquet c:\waptdev\wapt-wAdministratif-wapt (pour éditer la fonction update par exemple) et que je fais un build-upload, mon paquet est bien généré et uploadé sur le serveur. Je supprime l'ancien depuis la console et je relance le script python ci-dessus, il télécharge à nouveau le paquet wapt-wAdministratif dans le dossier c:\waptdev\wapt-wAdministratif mais le contenu ne correspond pas à la dernière version du paquet édité, généré et uploadé précédemment... A priori je n'ai qu'une seul version du paquet sur le serveur, je ne comprends donc pas comment cela est possible...

Je continue de chercher mais si quelqu'un a une idée ?!

Merci