-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature] Multi-repo workflow #13
base: main
Are you sure you want to change the base?
Conversation
… will execute only when requested by some job Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
…w does not work when included via `remote` keyword :-( Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
MODULES_MODULE_TAG: pr${CI_MERGE_REQUEST_IID} | ||
rules: | ||
# do not run if some required variables is empty | ||
- if: '$DEV_MODULES_REGISTRY == null || $DEV_MODULES_REGISTRY == "" || $DEV_MODULES_REGISTRY_PATH == null || $DEV_MODULES_REGISTRY_PATH == ""' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
only
, when
and rules
don't work well together. If we implement rules, then it's better to get rid of when
without rules
in the job and only
in these jobs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In multi-repo
templates (templates/multi-repo/*.yml
) I use rules
everywhere. Do you mean get rid of only
in simple
templates (templates/*.yml
)?
|
||
.setup: | ||
before_script: | ||
# Setup trdl |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#in gitlab-ci it is better to use docker-executor, separately prepare the image and call it. this will reduce the busy time of runners, add isolation between jobs, reduce the number of used dependencies (possible points of failure) and increase security. but perhaps they will not agree with me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree about a separate image for docker/kubernetes-executor
.
But minor/patch versions of Werf/DMT come out quite often and maintaining a separate CI-image can be "more expensive" in terms of time than installing current versions of tools every time pipeline is launched. 😇
I can also be wrong with my conclusions. 😅
…eady merged into `main` Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
… by 10) runs before `build` stage Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
Signed-off-by: Ivan.Makeev <[email protected]>
multi-repo
CI workflow differs frombasic
CI (which intemplates
) in the following key aspects:multi-repo
workflow we can push todev
andprod
registries separately with their own rules (seejobs/multi-repo
and/orexamples/multi-repo-module.gitlab-ci.yml
for example jobs).build
stage) are stored in Gitlab's module's registry by default. And only final images are pushed to the dev/prod registries. So, even in dev-registry there should be no "build-time garbage" and/or some "extra" images/layers for each module.