bitovi/bitops

CI/CD Refactoring & Release pipeline

arm4b opened this issue · 0 comments

arm4b commented

As a follow-up to v2.0.0, refactor CD based on the previous discussions in the #285 (review) and #292 issue.
Overrides closes #197

The source of truth behind the versioning should be a tag name and GitHub release as an event.

Outside of that, would be nice adding some CI checks in the pipeline (on a PR) and integrating it with the: https://github.com/marketplace/actions/tagging-strategy and https://github.com/marketplace/actions/build-and-push-docker-images.

The Plan

  • Make base + pre-built image generation part of one workflow (pre-built to depend on base)
  • Push to main branch should produce a :dev Docker tag for Omnibus
  • New release event should trigger the CD pipeline for pre-built images
    • image tagging is based on release version
  • Add ability to control the latest tag via pre-release (see #285)
  • Integrate with https://github.com/marketplace/actions/tagging-strategy
  • Integrate with https://github.com/marketplace/actions/build-and-push-docker-images (if possible)
  • CI
    • CI: Make image generation (CI) without docker push (CD) as a check to verify that the images could be built with no issues on PR
    • CI: Make docs build (CI) without push as part of PR check

The changes/releases should be tested first in the fork to avoid affecting prod bitovi/bitops repo.