Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is
set. This is to be use with a scheduled pipeline.
Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
Notes:
v2:
- remove the logic to test containers once rebuilt.
- only include the config with jobs for the "containers" stage wen
XEN_CI_REBUILD_CONTAINERS is set.
.gitlab-ci.yml | 16 ++++++++++++---
automation/gitlab-ci/containers.yaml | 29 ++++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 3 deletions(-)
create mode 100644 automation/gitlab-ci/containers.yaml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 941e5822e8..5a9b8b7228 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,11 +8,21 @@ workflow:
- when: always
stages:
+ - containers
- analyze
- build
- test
include:
- - 'automation/gitlab-ci/analyze.yaml'
- - 'automation/gitlab-ci/build.yaml'
- - 'automation/gitlab-ci/test.yaml'
+ - local: 'automation/gitlab-ci/containers.yaml'
+ rules:
+ - if: $XEN_CI_REBUILD_CONTAINERS
+ - local: 'automation/gitlab-ci/analyze.yaml'
+ rules:
+ - if: $XEN_CI_REBUILD_CONTAINERS == null
+ - local: 'automation/gitlab-ci/build.yaml'
+ rules:
+ - if: $XEN_CI_REBUILD_CONTAINERS == null
+ - local: 'automation/gitlab-ci/test.yaml'
+ rules:
+ - if: $XEN_CI_REBUILD_CONTAINERS == null
diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml
new file mode 100644
index 0000000000..25e8bdc34b
--- /dev/null
+++ b/automation/gitlab-ci/containers.yaml
@@ -0,0 +1,29 @@
+.container-build-tmpl:
+ stage: containers
+ image: docker:stable
+ tags:
+ - container-builder
+ rules:
+ - if: $XEN_CI_REBUILD_CONTAINERS
+ services:
+ - docker:dind
+ before_script:
+ - apk add make
+ - docker info
+ - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
+ script:
+ - make -C automation/build PUSH=1 REGISTRY=${XEN_REGISTRY} ${CONTAINER/:/\/}
+ after_script:
+ - docker logout
+
+container-archlinux-current:
+ extends:
+ - .container-build-tmpl
+ variables:
+ CONTAINER: "archlinux:current"
+
+container-opensuse-tumbleweed-x86_64:
+ extends:
+ - .container-build-tmpl
+ variables:
+ CONTAINER: "opensuse:tumbleweed-x86_64"
--
Anthony Perard | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
On Tue, 19 Nov 2024, Anthony PERARD wrote: > Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is > set. This is to be use with a scheduled pipeline. > > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > > Notes: > v2: > - remove the logic to test containers once rebuilt. > - only include the config with jobs for the "containers" stage wen > XEN_CI_REBUILD_CONTAINERS is set. > > .gitlab-ci.yml | 16 ++++++++++++--- > automation/gitlab-ci/containers.yaml | 29 ++++++++++++++++++++++++++++ > 2 files changed, 42 insertions(+), 3 deletions(-) > create mode 100644 automation/gitlab-ci/containers.yaml > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 941e5822e8..5a9b8b7228 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -8,11 +8,21 @@ workflow: > - when: always > > stages: > + - containers > - analyze > - build > - test > > include: > - - 'automation/gitlab-ci/analyze.yaml' > - - 'automation/gitlab-ci/build.yaml' > - - 'automation/gitlab-ci/test.yaml' > + - local: 'automation/gitlab-ci/containers.yaml' > + rules: > + - if: $XEN_CI_REBUILD_CONTAINERS > + - local: 'automation/gitlab-ci/analyze.yaml' > + rules: > + - if: $XEN_CI_REBUILD_CONTAINERS == null > + - local: 'automation/gitlab-ci/build.yaml' > + rules: > + - if: $XEN_CI_REBUILD_CONTAINERS == null > + - local: 'automation/gitlab-ci/test.yaml' > + rules: > + - if: $XEN_CI_REBUILD_CONTAINERS == null > diff --git a/automation/gitlab-ci/containers.yaml b/automation/gitlab-ci/containers.yaml > new file mode 100644 > index 0000000000..25e8bdc34b > --- /dev/null > +++ b/automation/gitlab-ci/containers.yaml > @@ -0,0 +1,29 @@ > +.container-build-tmpl: > + stage: containers > + image: docker:stable > + tags: > + - container-builder > + rules: > + - if: $XEN_CI_REBUILD_CONTAINERS > + services: > + - docker:dind > + before_script: > + - apk add make > + - docker info > + - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY > + script: > + - make -C automation/build PUSH=1 REGISTRY=${XEN_REGISTRY} ${CONTAINER/:/\/} > + after_script: > + - docker logout > + > +container-archlinux-current: > + extends: > + - .container-build-tmpl > + variables: > + CONTAINER: "archlinux:current" > + > +container-opensuse-tumbleweed-x86_64: > + extends: > + - .container-build-tmpl > + variables: > + CONTAINER: "opensuse:tumbleweed-x86_64" > -- > > > Anthony Perard | Vates XCP-ng Developer > > XCP-ng & Xen Orchestra - Vates solutions > > web: https://vates.tech >
On Tue, Nov 19, 2024 at 01:47:16PM -0800, Stefano Stabellini wrote: > On Tue, 19 Nov 2024, Anthony PERARD wrote: > > Rebuild rolling release containers when XEN_CI_REBUILD_CONTAINERS is > > set. This is to be use with a scheduled pipeline. > > > > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech> > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Thanks! I've scheduled a pipeline to run once a month so the Arch Linux and Tumbleweed containers we'll get rebuilt regularly. Both container are already up-to-date because I failed to use a different registry during one of my test, but the build-jobs still works. Cheers, -- Anthony Perard | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
© 2016 - 2024 Red Hat, Inc.