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.