Skip to content

Conversation

@joshpencheon
Copy link
Contributor

@joshpencheon joshpencheon commented Jan 12, 2021

Issue Summary

As we move towards continuous delivery, and start applying branch protection rules to our repositories' mainline branches, we'll need to consider what the implications are for building and releasing gems.

In the CD ethos, we should be striving to automate the release of gems when suitable criteria are met. This is sometimes done by having a CI agent watch for tagged commits, and build and release those. However, one drawback here is that it's not currently possible on GitHub to "protect" tags in the same way that we can protect branches.

Ideally, our building/releasing would be part of the merge lifecycle.

PR Summary

This PR takes inspiration from Bundler's gem_tasks, and extends them to allow build (and thus release) to only proceed if the version tag does not already exist in the repository.

This would allow something like the publish-rubygems action to run against the mainline branch, and automatically build/tag/release when it see the gemspec version change - which would only be possible via an authorised merge into the protected branch.

Additionally, we continue to use (and clean up) our legacy audit:check_safety code review integration for the time being; in due course, PR reviewing should give use the same level of assurance and accountability.

- continue checking code_safety.yml
- avoid re-building/releasing an existing tag (to make Continous Deployment easier)
@joshpencheon joshpencheon marked this pull request as draft January 15, 2021 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant