Skip to content

hanakai-rb/release-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💿 Hanakai Release Machine

Central GitHub Actions workflows to release Hanakai gems and npm packages using signed version tags.

See latest releases.

How to release a gem

Prerequisites:

To release a gem:

  1. Prepare lib/[gem_name]/version.rb and CHANGELOG.md for the new version.
  2. Create a signed tag for the version: get tag -s vX.Y.Z
  3. Push the signed tag: git push origin vX.Y.Z
  4. Watch the latest release workflow run to see the new version published.

You can also use the gem-release gem to streamline steps 1-3:

$ gem install gem-release
$ gem bump --version X.Y.Z --tag --sign --push

Check out gem bump --help to learn more.

How to release an npm package

Prerequisites:

To release an npm package:

  1. Prepare package.json and CHANGELOG.md for the new version.
  2. Create a signed tag for the version: git tag -s vX.Y.Z
  3. Push the signed tag: git push origin vX.Y.Z
  4. Watch the latest release workflow run to see the new version published.

Configuring Release Machine

See .github/workflows/release.yml and .github/workflows/release-npm.yml for the release workflows.

Contains public keys for each releaser, expected to be used with signing version tags. These files names should match the releaser's GitHub username. For example:

  • t-boz.ssh.txt (when signing commits with SSH)
  • left-eye.gpg.asc (when signing commits with GPG)

Defines who is authorized to release packages. Contains:

  • default: Releasers authorized for all packages
  • packages: Releasers for specific packages (in addition to default releasers)

Example:

default:
  - t-boz
  - left-eye
packages:
  hanami-router:
    - chilli

About

Automated releases of Hanakai gems

Resources

Stars

Watchers

Forks

Contributors