7.3.2.2.2. Release to GitHub and Deploy to PuppetForge

Each SIMP component is configured to automatically create a GitHub release and push the release to PuppetForge, when an annotated tag is created for the GitHub project and the CI tests for the annotated tag push succeed.

To create the releases from an annotated tag:

  1. Clone the component repository and checkout the development branch to be tagged

    git clone git@github.com:simp/pupmod-simp-iptables.git
    cd pupmod-simp-iptables
    git checkout master # this step isn't needed for master branch
    
  2. Generate the changelog content

    bundle update
    bundle exec rake pkg:create_tag_changelog > foo
    
  3. Create the annotated tag. In this example the content of ‘foo’ is:

    Release of 6.0.2
    
    * Wed May 24 2017 Brandon Riden <brandon.riden@onyxpoint.com> - 6.0.2-0
      - Added a workaround for Puppet 4.10 type issues
        - There was a bug in Puppet where all lookup() Hash keys were being converted
          into Strings even if they were another data type
        - This is fixed in Puppet > 4.10.2 but this patch will remain for backwards
          compatibility
      - Update puppet dependency in metadata.json
      - Remove OBE pe dependency in metadata.json
    
    git tag -a 6.0.2 -F foo
    git push origin 6.0.2
    

    Note

    For markdown-style changelogs, you will need to specify --cleanup=whitespace so comment headers are not stripped.

  4. Verify GitHub Actions completes successfully

    Important

    If any of the required builds for the project fail, for example due to intermittent connectivity problems, you can complete the release process by manually restarting the failed build on the GitHub Actions page for that build.

  5. Verify release exists on GitHub. This release will have been created by simp-auto.