Setting up a module for publication Edit

Published on Jan 1, 2016

Forge publishing is handled by travis and puppet-blacksmith.

To guarantee a frictionless process across all modules, we use modulesync. Our modulesync configuration is available at modulesync_config.

Most modulesync’ed settings can be overridden through a .sync.yml. You may also need to (re)define your travis testing matrix with respect to puppet version. This prevents the deploy hook from running once for each version of puppet defined in your testing.

Travis needs to be aware of the rename, this can be done by pushing a single commit. Travis needs to be enabled for the new repository, you can do that here.

The secure line is unique per repository and often the only line in .sync.yml. To get a secure line:

Ask an admin (or submit a PR) to add your module to the list here. Then an admin will run the encrypt_travis.sh script and push a new version of this which you can then copy and paste your travis secure line from.

Note that you need to mask your secure: line in .travis.yml from modulesync. Here is an example of what that looks like.

If the forge puppet password is changed, an admin can run encrypt_travis.sh and the modules can bring in the new password on their own schedule.

Gem publishing is handled similarly, except there is not a unified user. Each gem owner is responsible for their own .travis.yml