getssl/RELEASE.md at master · srvrco/getssl · GitHub
Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 2.19 KB

RELEASE.md

File metadata and controls

59 lines (45 loc) · 2.19 KB

How to do a release of getssl

Update the version and tag the release

  1. git pull
  2. git branch -c release_2_nn
  3. git switch release_2_nn
  4. update VERSION in getssl and getssl.spec
  5. update the changelog in getssl
  6. update the rpm and deb packages in README.md
  7. create the plain text version of README using pandoc -t plain README.md > README
  8. git commit -m"Update version to v2.nn"
  9. git tag -a v2.nn -m"Release 2.nn"
  10. git push origin release_2_nn
  11. git push --tags

Create a PR to Merge the release_2_nn branch into main

  1. gh auth login - need to login via browser as Personal token doesn't have enough permissions
  2. gh pr create --title "Release 2.nn" --body "Release 2.nn"
  3. gh pr merge
  4. Wait for the tests to finish

Build the .deb and .rpm packages

  1. Create the release and deb/rpm packages using the deploy github action gh workflow run "Deploy getssl" --field tags=2.nn
  2. Use gh run list --workflow="release-and-package.yml" to find the ID
  3. Wait for the build process to finish gh run watch <ID>
  4. This creates a draft release

Change the status of the release from draft to pre-release (so the deb and rpm packages can be downloaded)

  1. gh release edit v2.nn --draft=false --title "Release 2.nn" --prerelease

Test the .deb file using the following steps

  1. Test that the package can be installed using a cloud instance
    1. Start an Ubuntu ec2 instance from AWS Console (or Azure or Google Cloud)
    2. Or use the instant-ec2.sh script from my Github gist to start an Ubuntu ec2 instance
      1. git clone git@gist.github.com:12c297e0645920c413273c9d15edbc68.git instant-ec2
      2. ./instant-ec2/instant-ec2.sh --start
  2. ssh into the host
  3. download the deb package wget https://github.com/srvrco/getssl/releases/download/v2.nn/getssl_2.nn-1_all.deb
  4. install the deb package dpkg -i getssl_2.nn-1_all.deb
  5. Check it's installed correctly getssl --version

Change the release from pre-release to latest

  1. gh release edit v2.nn --prerelease=false --latest

Update the latest tag post-release

  1. git switch master
  2. git pull
  3. git tag -f -a latest -m "Update latest to v2.nn"
  4. git push --force --tags