Rebuild workflow with PRs
Building off #20, we don't currently have a meaningful PR workflow for handling container (re)builds.
Building a new image right now means we should have a push directly to master like so:
git commit --allow-empty -m "rebuild monasca-agent-base\n\n\!push monasca-agent-base"
This is doable through PRs right now (empty commit without !push, then !push in merge commit message) but doesn't actually do us any good since images are neither built nor tested before the PR gets merged.
This is because ci.py only checks the last commit in the series for !push tags. Ideally we should run the full PR CI/CD workflow in order to promote new builds according to our tagging policy (#111), so ci.py should have some mechanism for grabbing !push tags for any commit in a PR, but this leads to more problems:
- how do we make sure only approved users trigger releases?
- how do we notify approved users that a patch will result in a new release at/before merge time?
- more generally, how do we simplify this process? making empty commits really feels bad
The PR bot can eventually help with some of this (monasca/pr-bot#9) but will probably need further enhancements to make this viable. It would be helpful to have the bot detect when a PR will trigger a release and post a comment to the PR, but perhaps the bot could take over the release process entirely so we can interact with it through comments.
another thought: bot can add a nice scary red "WILL RELEASE" label for us when it detects a !push tag