Repository navigation
Setup Shared CI for Uploading Dev and Release Images - #182
Open
anish-mudaraddi wants to merge 14 commits into
Open
anish-mudaraddi wants to merge 14 commits into
anish-mudaraddi wants to merge 14 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #182 +/- ##
==========================================
+ Coverage 97.24% 98.40% +1.15%
==========================================
Files 16 48 +32
Lines 1198 3069 +1871
==========================================
+ Hits 1165 3020 +1855
- Misses 33 49 +16
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
anish-mudaraddi
force-pushed
the
tidy-ci
branch
3 times, most recently
from
September 8, 2026 09:05
f4b2b6c to
da27b94
Compare
gmatthews20
requested changes
Sep 8, 2026
anish-mudaraddi
force-pushed
the
tidy-ci
branch
3 times, most recently
from
September 10, 2026 13:30
51377f5 to
0da9530
Compare
setup distinct CI jobs that can be reused. - separate build_image related actions into two distinct CI jobs. Create dev image and Create release image Create dev image runs when a PR is created - to build images and upload them to harbor in the stfc-cloud-staging project. Create release image happens when merged into master we also allow building locally using scripts in .github/scripts/build_dev_image.sh and .github/scripts/build_release_image.sh for local testing See updated readme on how to use the new CI jobs Motivation: - build jobs and CI are complex - there's a lot of repeated code between CI jobs - ultimately performing similar jobs: building dev and release images and uploading to harbor. # Changelog simplified the CI such that: - have 2 scripts to handle building and pushing images - used by github action and can be invoked locally for testing. Easy to test the scripts outside of github actions - created a shared action that builds and pushes a dev image when a PR is opened that changes the contents of a image subdirectory. - created an action that build a new release image when a PR is merged to master - modified existing CI that would regularly publish a PR bumping the patch version for rabbit-consumer docker image. Made this apply to all docker images so that we can force dependencies to updated and the docker build step - simplified individual image CI jobs to just testing and linting - not also building the images. This reduces duplicated code.
split out detect_changed_images.sh and validate_version.sh from build_dev_image.yaml
this github action periodically opened a PR that would just bump the patch version of each chart, forcing a new dev image to be created. this was done to update the underlying apt package dependencies periodically for the chart. I removed this because there was an argument made that the reviewer had nothing to review - hence we need to re-think this PR - potentially by only opening when a dependency changed and doocumenting what dependencies changed in the PR
scripts were too complex, simplify to just use the docker build-push-action instead of standalone scripts the manual method is simple just a docker build <image> <tags> --push <other-flags> - So just document that in the README remove validating the version.txt change as not all versions will be in the format major.minor.patch. Instead we simply check that it has been changed in detect_changed_images.sh
Maximise build space is slow running, run only when we're sure to build an image
anish-mudaraddi
force-pushed
the
tidy-ci
branch
from
October 2, 2026 13:52
ae61715 to
4b3b6a4
Compare
add comment link releases
version step was removed as we no longer check to see if there was a version bump and simply if it was changed
anish-mudaraddi
force-pushed
the
tidy-ci
branch
from
October 13, 2026 09:47
3f2decd to
165c3aa
Compare
anish-mudaraddi
force-pushed
the
tidy-ci
branch
from
October 13, 2026 09:50
165c3aa to
85bb4b0
Compare
Collaborator
Author
|
changes since last review:
|
anish-mudaraddi
force-pushed
the
tidy-ci
branch
from
October 13, 2026 10:39
4f1b6b5 to
3b0652f
Compare
anish-mudaraddi
force-pushed
the
tidy-ci
branch
3 times, most recently
from
October 13, 2026 12:22
728eaf3 to
07ad519
Compare
anish-mudaraddi
force-pushed
the
tidy-ci
branch
from
October 15, 2026 09:26
07ad519 to
52307f8
Compare
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The current build jobs are complex and there's a lot of repeated code. Currently, to add a new image, a whole new CI/CD pipeline: test -> lint -> build dev image -> build release image would need to be written - ultimately slowing down development.
This PR:
Makes it easier and standardise on the way we add and test new docker images. By setting up "generic" build scripts that will automatically detect images in this repo, build and push these images without explicitly needing to write another CI action.
separate image build jobs from testing and linting jobs to promote code reuse.
"Create Dev Image" action runs when a PR is created - to build images and upload them to harbor in the stfc-cloud-staging project.
"Create Release Image" action runs when a PR is merged into master
read and export a buildcache when building images so CI finishes quicker
Provide a way to locally build images using
./github/scripts/build_image.sh- see updated readme on how to use the new CI jobsSetup a periodic PR to rebuild images and bump patch versions so we pick up the latest package dependency updates
To add new docker images - we now only need to write an action to test and lint source code which is much easier to write and maintain. This is not easy to make generic since we have a mix of Go and Python and slightly different project/package configurations.
Changelog
simplified the CI such that:
have 2 scripts to handle building and pushing images - used by github action and can be invoked locally for testing. Easy to test the scripts outside of github actions
created a shared action to automatically detect changes to a image subdirectory and builds and pushes a dev image when a PR is opened: e.g.
1.0.0dev.1293a1created an action that builds and pushes a new release image and github tag when a PR is merged to master
modified existing CI that would regularly publish a PR bumping the patch version for rabbit-consumer docker image. Made this apply to all docker images so that we can force dependencies to updated and the docker build step
simplified individual image CI jobs to just testing and linting - not also building the images. This reduces duplicated code.