GitPackagingWorkflowTest » Historique » Version 1
Daniel Dehennin, 30/01/2012 11:11
Déplacement du worflow dans une page dédiée
1 | 1 | Daniel Dehennin | h1. TODO Proposition de workflow |
---|---|---|---|
2 | 1 | Daniel Dehennin | |
3 | 1 | Daniel Dehennin | h2. Partie développeur |
4 | 1 | Daniel Dehennin | |
5 | 1 | Daniel Dehennin | # Création d’un tag signé contenant un nouveau numéro de version |
6 | 1 | Daniel Dehennin | # Envoi du tag sur le dépôt central dev-eole |
7 | 1 | Daniel Dehennin | |
8 | 1 | Daniel Dehennin | h2. Partie packageur |
9 | 1 | Daniel Dehennin | |
10 | 1 | Daniel Dehennin | # Fusion de la branche développeur dans la branche de packaging |
11 | 1 | Daniel Dehennin | # Création d’un tag signé contenant le nouveau numéro de version basé sur celui du développeur |
12 | 1 | Daniel Dehennin | # Envoi du tag sur le dépôt central dev-eole |
13 | 1 | Daniel Dehennin | |
14 | 1 | Daniel Dehennin | Cette partie peut être automatisée si un mapping existe entre les branches de développement et les branches de packaging. |
15 | 1 | Daniel Dehennin | Dans ce cas, on pourra vérifier la signature du développeur. |
16 | 1 | Daniel Dehennin | |
17 | 1 | Daniel Dehennin | h2. Partie builder : gestion du source Debian |
18 | 1 | Daniel Dehennin | |
19 | 1 | Daniel Dehennin | Le but de cette partie est de créer l’ensemble des fichiers sources Debian : |
20 | 1 | Daniel Dehennin | |
21 | 1 | Daniel Dehennin | * @<PAQUET>_<VERSION SOURCE>.orig.tar.gz@ : Les sources non packagées (dans le répertoire @debian/@) |
22 | 1 | Daniel Dehennin | * @<PAQUET>_<VERSION DEBIAN>.debian.tar.gz@ : Le packaging des sources (le répertoire @debian/@) |
23 | 1 | Daniel Dehennin | * @<PAQUET>_<VERSION DEBIAN>.dsc@ : Description du paquet source Debian (doit être signé) |
24 | 1 | Daniel Dehennin | * @<PAQUET>_<VERSION DEBIAN>_source.changes@ : Description des changements (mixe entre l’entrée de @debian/changelog@ de cette version et le fichier @.dsc@) |
25 | 1 | Daniel Dehennin | |
26 | 1 | Daniel Dehennin | # Vérification de la signature: si nok => suppression du tag + report + quit |
27 | 1 | Daniel Dehennin | # Checkout du tag == récup de la conf gbp.conf |
28 | 1 | Daniel Dehennin | # Checkout de la branche de build depuis le dernier tag de version Debian |
29 | 1 | Daniel Dehennin | # Merge du tag dans la branche de build |
30 | 1 | Daniel Dehennin | # Mise à jour de @debian/changelog@ : |
31 | 1 | Daniel Dehennin | <pre>git-dch -a -R/-S debian/</pre> |
32 | 1 | Daniel Dehennin | # Ajout de @debian/changelog@ à l’index pour le prochain commit : |
33 | 1 | Daniel Dehennin | <pre>git add debian/changelog</pre> |
34 | 1 | Daniel Dehennin | # Commit en utilisant le numéro de version du nouveau paquet : |
35 | 1 | Daniel Dehennin | <pre>git commit -m "Nouveau paquet debian version: $(dpkg-parsechangelog | awk '/^Version/ {print $2}')"</pre> |
36 | 1 | Daniel Dehennin | # Construction du source debian et envoi sur un dépôt debian, sans faire de nettoyage, ni de vérification de dépendance: |
37 | 1 | Daniel Dehennin | <pre>git buildpackage \ |
38 | 1 | Daniel Dehennin | --git-builder="dpkg-buildpackage -nc -d -S" \ |
39 | 1 | Daniel Dehennin | --git-postbuild='dput eole "${GBP_CHANGES_FILE}"' |
40 | 1 | Daniel Dehennin | --git-cleaner=/bin/true</pre> |
41 | 1 | Daniel Dehennin | |
42 | 1 | Daniel Dehennin | Cette partie peut être automatisée. |
43 | 1 | Daniel Dehennin | |
44 | 1 | Daniel Dehennin | h2. Partie dépôt : gestion du source Debian |
45 | 1 | Daniel Dehennin | |
46 | 1 | Daniel Dehennin | Cette partie peut être prise en charge automatiquement par "différente méthode":http://git.debian.org/?p=mirrorer/reprepro.git;a=blob_plain;hb=HEAD;f=docs/manual.html (section "Processing an incoming queue") : |
47 | 1 | Daniel Dehennin | |
48 | 1 | Daniel Dehennin | * "cron":http://fr.wikipedia.org/wiki/cron |
49 | 1 | Daniel Dehennin | * "inotify":http://fr.wikipedia.org/wiki/Inotify |
50 | 1 | Daniel Dehennin | * "dput/dupload":http://www.debian.org/doc/manuals/maint-guide/upload.en.html |
51 | 1 | Daniel Dehennin | |
52 | 1 | Daniel Dehennin | L’utilisation de @dput@ ou @dupload@ requiert de mettre en place une configuration et des autorisation pour chaque « uploader ». |
53 | 1 | Daniel Dehennin | |
54 | 1 | Daniel Dehennin | La solution @inotify@ est le meilleur compromis : |
55 | 1 | Daniel Dehennin | |
56 | 1 | Daniel Dehennin | * Ne requiert une configuration qu’à un endroit ; |
57 | 1 | Daniel Dehennin | * Prise en compte rapide des uploads. |
58 | 1 | Daniel Dehennin | |
59 | 1 | Daniel Dehennin | h2. Partie builder : gestion des paquets binaires |
60 | 1 | Daniel Dehennin | |
61 | 1 | Daniel Dehennin | La construction des paquets binaires est dépendante de l’"architecture":http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture déclarée dans @debian/control@ : |
62 | 1 | Daniel Dehennin | |
63 | 1 | Daniel Dehennin | * Une seule fois pour les paquets déclarés avec l’architecture *all* |
64 | 1 | Daniel Dehennin | * Pour chaque architecture supportée pour les paquets déclarés avec l’architecture *any* ou une liste d’architecture |
65 | 1 | Daniel Dehennin | |
66 | 1 | Daniel Dehennin | # Téléchargement des sources depuis le dépôt : |
67 | 1 | Daniel Dehennin | <pre>apt-get source <PAQUET></pre> |
68 | 1 | Daniel Dehennin | # Construction du paquet en utilisant l’[[GitPackaging#Environnement de compilation personel|environnement de build]] correspondant à la distribution du paquet : |
69 | 1 | Daniel Dehennin | <pre>cd <PAQUET>-<VERSION>/ \ |
70 | 1 | Daniel Dehennin | && sbuild -A -d $(dpkg-parsechangelog | awk '/^Distribution/ {print $2}')"</pre> |
71 | 1 | Daniel Dehennin | # Si build OK : |
72 | 1 | Daniel Dehennin | ## On tag la version du paquet : |
73 | 1 | Daniel Dehennin | <pre>git buildpackage --git-tag-only</pre> |
74 | 1 | Daniel Dehennin | ## On envoi le tag sur le dépôt central : |
75 | 1 | Daniel Dehennin | <pre>git push</pre> |
76 | 1 | Daniel Dehennin | ## On supprime la branche de build qui est inutile |
77 | 1 | Daniel Dehennin | ## On envoi le paquet sur le dépôt des paquets debian |
78 | 1 | Daniel Dehennin | |
79 | 1 | Daniel Dehennin | h1. Webographie |
80 | 1 | Daniel Dehennin | |
81 | 1 | Daniel Dehennin | * "Rebuildd":http://julien.danjou.info/software/rebuildd |
82 | 1 | Daniel Dehennin | * "Rebuildd on Debian":http://packages.qa.debian.org/rebuildd |
83 | 1 | Daniel Dehennin | * "Rebuildd for building a Private PPA on Ubuntu":http://inodes.org/2009/09/14/building-a-private-ppa-on-ubuntu/ |