diff --git a/docs/images/gbp-buildpackage.uml b/docs/images/gbp-buildpackage.uml new file mode 100644 --- /dev/null +++ b/docs/images/gbp-buildpackage.uml @@ -0,0 +1,52 @@ +@startuml + participant JOB as "job" + participant REPO as "git-repository (~phabricator forge)" + participant CI as "gbp-buildpackage job" + participant DEBIAN_SWH_REPO as "swh debian repository" + participant DEBIAN_REPO as "debian repositories" + activate REPO + activate CI + activate DEBIAN_SWH_REPO + activate DEBIAN_REPO + + activate JOB + JOB->REPO: pushes new tag on branch \ndebian/unstable-swh (or debian/stretch-swh) + deactivate JOB + REPO-->CI: trigger event to notify changes + + alt If params.PHID is set + CI->REPO: pyarcanist sends a notification message on starting job + end + + CI-->REPO: Clone repository locally + CI-->CI: Checks for right setup (debian/changelog ok, debian/gbp.conf ok, etc...) + alt if setup checks are fine + CI-->CI: add ceph's gpg public key in job agent node + CI-->CI: builds debian package from source for "various" targets\ndepending on params (extra debian repository, dependency resolver, etc...)\nor debian/changelog (debian/unstable-swh, debian/stretch-swh) + CI-->DEBIAN_SWH_REPO: (build) fetches potential dependencies + CI->DEBIAN_REPO: (build) fetches dependencies + alt if params.DO_UPLOAD is true + CI-->CI: signs the *.changes file + CI->DEBIAN_SWH_REPO: uploads the debian package + end + alt if params.DO_TAG + CI->REPO: pushes the new tag + end + end + + activate REPO + CI->REPO: pyarcanist sends a notification message on job's status + deactivate REPO + + legend left + | short name | description | + | job | jenkins job modifying the git repository by tagging (update-for-release, automatic-backport) | + | swh debian repo | https://debian.softwareheritage.org | + | debian repos | official (deb.debian.org), and more (e.g. ceph's) | + | phabricator forge | https://forge.softwareheritage.org | + | params.PHID | job parameter to identify a specific phabricator git repository | + | params.DO_UPLOAD | job parameter to upload or not the package to the debian repo | + | params.DO_TAG | job parameter to effectively push the new tag or not | + endlegend + +@enduml