apt_stage_artifacts
apt_stage_artifacts is a Ruby gem for Puppet Release Engineering to deliver locally built .deb packages to our freight-based apt repository staging.
It only handles internal staging and not the final push to outside customers.
The gem provides command-line programs for doing the staging.
Usage
apt-stage-artifacts
The main user script, apt-stage-artifacts
expects the current directory to be a vanagon-style build where debian .deb
files have been built into output/deb
.
After consulting the build-data repo for the name of the staging machine, it packs up the debian artifacts into a tarball and copies it there via scp.
It then invokes the remaining scripts on the staging machine to do the rest of the staging:
apt-stage-from-tarball
apt-stage-from-tarball
runs in the staging server. It unpacks the tarball created by apt-stage-artifacts
and calls apt-add-to-freight-library
on each of them. This adds each .deb
file to the correct freight library (puppet6, puppet7, puppet7-nightly, etc.)
Once all .deb files have been added, apt-stage-from-tarball
calls apt-update-freight-cache
, which instructs freight to generate the actual APT repo (which freight calls a "cache"), including GPG signing of the resulting cache.
When completed, the resulting "caches" are signed, functional APT repos which can sync'd to the outside world.