Martin Kletzander
2021-Sep-23 14:40 UTC
[Libguestfs] [libnbd PATCH] ci: Adopt libvirt-ci's manifest approach
This makes it a bit easier to write .gitlab-ci.yml as it inherits most of what
can be generated from the ci/gitlab.yml and deprecates the ci/refresh script.
Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
.gitlab-ci.yml | 270 +-----------
ci/README.rst | 7 +-
ci/cirrus/freebsd-12.vars | 2 +-
ci/cirrus/freebsd-13.vars | 2 +-
ci/cirrus/freebsd-current.vars | 2 +-
ci/cirrus/macos-11.vars | 2 +-
ci/containers/alpine-314.Dockerfile | 2 +-
ci/containers/alpine-edge.Dockerfile | 2 +-
ci/containers/centos-8.Dockerfile | 2 +-
ci/containers/centos-stream-8.Dockerfile | 2 +-
ci/containers/debian-10-cross-i686.Dockerfile | 2 +-
ci/containers/debian-10.Dockerfile | 2 +-
ci/containers/debian-11-cross-i686.Dockerfile | 2 +-
ci/containers/debian-11.Dockerfile | 2 +-
ci/containers/debian-sid.Dockerfile | 2 +-
ci/containers/fedora-33.Dockerfile | 2 +-
ci/containers/fedora-34-cross-i686.Dockerfile | 0
ci/containers/fedora-34.Dockerfile | 2 +-
ci/containers/fedora-rawhide.Dockerfile | 2 +-
ci/containers/opensuse-leap-152.Dockerfile | 2 +-
ci/containers/opensuse-tumbleweed.Dockerfile | 2 +-
ci/containers/ubuntu-1804.Dockerfile | 2 +-
ci/containers/ubuntu-2004.Dockerfile | 2 +-
ci/gitlab.yml | 413 ++++++++++++++++++
ci/manifest.yml | 72 +++
ci/refresh | 33 --
26 files changed, 520 insertions(+), 315 deletions(-)
delete mode 100644 ci/containers/fedora-34-cross-i686.Dockerfile
create mode 100644 ci/gitlab.yml
create mode 100644 ci/manifest.yml
delete mode 100755 ci/refresh
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8976015b1e20..122bc0860178 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,30 +13,10 @@ stages:
export CCACHE_MAXSIZE="500M"
export PATH="$CCACHE_WRAPPERSDIR:$PATH"
-# Common templates
-
-.container_job:
- image: docker:stable
- stage: containers
- needs: []
- services:
- - name: registry.gitlab.com/libvirt/libvirt-ci/docker-dind:master
- alias: docker
- before_script:
- - export TAG="$CI_REGISTRY_IMAGE/$NAME:latest"
- - export COMMON_TAG="$CI_REGISTRY/nbdkit/libnbd/$NAME:latest"
- - docker info
- - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p
"$CI_REGISTRY_PASSWORD"
- script:
- - docker pull "$TAG" || docker pull "$COMMON_TAG" ||
true
- - docker build --cache-from "$TAG" --cache-from
"$COMMON_TAG" --tag "$TAG" -f
"ci/containers/$NAME.Dockerfile" ci/containers
- - docker push "$TAG"
- after_script:
- - docker logout
+include: '/ci/gitlab.yml'
.base_build_job:
stage: builds
- image: $CI_REGISTRY_IMAGE/$NAME:latest
cache:
paths:
- ccache/
@@ -52,6 +32,16 @@ stages:
public: true
when: always
+.native_build_job:
+ extends:
+ - .base_build_job
+ - .gitlab_native_build_job
+
+.cross_build_job:
+ extends:
+ - .base_build_job
+ - .gitlab_cross_build_job
+
# Jobs that we delegate to Cirrus CI because they require an operating
# system other than Linux. These jobs will only run if the required
# setup has been performed on the GitLab account (see ci/README.rst).
@@ -91,241 +81,3 @@ stages:
- cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
rules:
- if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
-
-# Cross-compilation container build jobs
-i686-debian-10-container:
- extends: .container_job
- variables:
- NAME: debian-10-cross-i686
-
-i686-debian-11-container:
- extends: .container_job
- variables:
- NAME: debian-11-cross-i686
-
-# Native container build jobs
-x64-alpine-314-container:
- extends: .container_job
- variables:
- NAME: alpine-314
-
-x64-alpine-edge-container:
- extends: .container_job
- variables:
- NAME: alpine-edge
-
-x64-centos-8-container:
- extends: .container_job
- variables:
- NAME: centos-8
-
-x64-centos-stream-8-container:
- extends: .container_job
- variables:
- NAME: centos-stream-8
-
-x64-debian-11-container:
- extends: .container_job
- variables:
- NAME: debian-11
-
-x64-debian-sid-container:
- extends: .container_job
- variables:
- NAME: debian-sid
-
-x64-fedora-33-container:
- extends: .container_job
- variables:
- NAME: fedora-33
-
-x64-fedora-34-container:
- extends: .container_job
- variables:
- NAME: fedora-34
-
-x64-fedora-rawhide-container:
- extends: .container_job
- allow_failure: true
- variables:
- NAME: fedora-rawhide
-
-x64-opensuse-leap-152-container:
- extends: .container_job
- variables:
- NAME: opensuse-leap-152
-
-x64-opensuse-tumbleweed-container:
- extends: .container_job
- variables:
- NAME: opensuse-tumbleweed
-
-x64-ubuntu-1804-container:
- extends: .container_job
- variables:
- NAME: ubuntu-1804
-
-x64-ubuntu-2004-container:
- extends: .container_job
- variables:
- NAME: ubuntu-2004
-
-# Cross-compilation build jobs
-i686-debian-10:
- extends: .base_build_job
- needs:
- - i686-debian-10-container
- variables:
- NAME: debian-10-cross-i686
- CROSS: i686
-
-i686-debian-11:
- extends: .base_build_job
- needs:
- - i686-debian-11-container
- variables:
- NAME: debian-11-cross-i686
- CROSS: i686
-
-# Native architecture build + test jobs
-x64-debian-11:
- extends: .base_build_job
- needs:
- - x64-debian-11-container
- variables:
- NAME: debian-11
-
-x64-debian-sid:
- extends: .base_build_job
- needs:
- - x64-debian-sid-container
- variables:
- NAME: debian-sid
-
-x64-centos-8:
- extends: .base_build_job
- needs:
- - x64-centos-8-container
- variables:
- NAME: centos-8
-
-x64-alpine-314:
- extends: .base_build_job
- needs:
- - x64-alpine-314-container
- variables:
- NAME: alpine-314
-
-x64-alpine-edge:
- extends: .base_build_job
- needs:
- - x64-alpine-edge-container
- variables:
- NAME: alpine-edge
-
-x64-centos-8-clang:
- extends: .base_build_job
- needs:
- - x64-centos-8-container
- variables:
- NAME: centos-8
- CC: clang
-
-x64-centos-stream-8:
- extends: .base_build_job
- needs:
- - x64-centos-stream-8-container
- variables:
- NAME: centos-stream-8
-
-x64-fedora-33:
- extends: .base_build_job
- needs:
- - x64-fedora-33-container
- variables:
- NAME: fedora-33
-
-x64-fedora-34:
- extends: .base_build_job
- needs:
- - x64-fedora-34-container
- variables:
- NAME: fedora-34
-
-x64-fedora-rawhide:
- extends: .base_build_job
- needs:
- - x64-fedora-rawhide-container
- variables:
- NAME: fedora-rawhide
-
-x64-fedora-rawhide-clang:
- extends: .base_build_job
- needs:
- - x64-fedora-rawhide-container
- variables:
- NAME: fedora-rawhide
- CC: clang
-
-x64-opensuse-leap-152:
- extends: .base_build_job
- needs:
- - x64-opensuse-leap-152-container
- variables:
- NAME: opensuse-leap-152
-
-x64-opensuse-tumbleweed:
- extends: .base_build_job
- needs:
- - x64-opensuse-tumbleweed-container
- variables:
- NAME: opensuse-tumbleweed
-
-x64-ubuntu-1804:
- extends: .base_build_job
- needs:
- - x64-ubuntu-1804-container
- variables:
- NAME: ubuntu-1804
- GOLANG: skip
-
-x64-ubuntu-2004:
- extends: .base_build_job
- needs:
- - x64-ubuntu-2004-container
- variables:
- NAME: ubuntu-2004
-
-x64-freebsd-12-build:
- extends: .cirrus_build_job
- variables:
- NAME: freebsd-12
- CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
- CIRRUS_VM_IMAGE_SELECTOR: image_family
- CIRRUS_VM_IMAGE_NAME: freebsd-12-2
- UPDATE_COMMAND: pkg update
- INSTALL_COMMAND: pkg install -y
-
-x64-freebsd-13-build:
- extends: .cirrus_build_job
- variables:
- NAME: freebsd-13
- CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
- CIRRUS_VM_IMAGE_SELECTOR: image_family
- CIRRUS_VM_IMAGE_NAME: freebsd-13-0
- UPDATE_COMMAND: pkg update
- INSTALL_COMMAND: pkg install -y
-
-x64-macos-11-build:
- extends: .cirrus_build_job
- allow_failure: true
- variables:
- NAME: macos-11
- CIRRUS_VM_INSTANCE_TYPE: osx_instance
- CIRRUS_VM_IMAGE_SELECTOR: image
- CIRRUS_VM_IMAGE_NAME: big-sur-base
- UPDATE_COMMAND: brew update
- UPGRADE_COMMAND: brew upgrade
- INSTALL_COMMAND: brew install
- PATH_EXTRA:
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
- PKG_CONFIG_PATH:
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
diff --git a/ci/README.rst b/ci/README.rst
index c1c97362e41f..3d11e3a4d8bc 100644
--- a/ci/README.rst
+++ b/ci/README.rst
@@ -35,9 +35,10 @@ Container images are prepared during the build and cached, so
that they do not
need to be rebuilt for every run, or even built from scratch when changed
slightly. The cached container images can be deleted at any time as they will
be correctly rebuilt in case of a cache miss. The Dockerfiles are generated
-using ``lcitool`` and stored under ``ci/containers``. In that directory is also
-a ``refresh`` script which can regenerate those files, for example after an
-update to libvirt-ci (e.g. when adding a new dependency).
+using ``lcitool`` and stored under ``ci/containers``. In order to update the
+files one needs to run ``lcitool manifest ci/manifest.yml`` from the root of
the
+git repository, for example after an update to libvirt-ci (e.g. when adding a
+new dependency).
Recreating the builds locally is pretty straightforward. Choose a file from
``ci/containers`` which represents the desired setup. In this example let's
diff --git a/ci/cirrus/freebsd-12.vars b/ci/cirrus/freebsd-12.vars
index 2573de241849..6f2b76ce5d11 100644
--- a/ci/cirrus/freebsd-12.vars
+++ b/ci/cirrus/freebsd-12.vars
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool variables freebsd-12 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/cirrus/freebsd-13.vars b/ci/cirrus/freebsd-13.vars
index 40e8ddd43e49..6f2b76ce5d11 100644
--- a/ci/cirrus/freebsd-13.vars
+++ b/ci/cirrus/freebsd-13.vars
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool variables freebsd-13 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/cirrus/freebsd-current.vars b/ci/cirrus/freebsd-current.vars
index 73dff989ffb4..6f2b76ce5d11 100644
--- a/ci/cirrus/freebsd-current.vars
+++ b/ci/cirrus/freebsd-current.vars
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool variables freebsd-current libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/cirrus/macos-11.vars b/ci/cirrus/macos-11.vars
index eae75535a960..89bda78fd154 100644
--- a/ci/cirrus/macos-11.vars
+++ b/ci/cirrus/macos-11.vars
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool variables macos-11 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/alpine-314.Dockerfile
b/ci/containers/alpine-314.Dockerfile
index 0fb954abb66b..82960f71ecff 100644
--- a/ci/containers/alpine-314.Dockerfile
+++ b/ci/containers/alpine-314.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile alpine-314 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/alpine-edge.Dockerfile
b/ci/containers/alpine-edge.Dockerfile
index e27775d647fb..3e9fbfa223eb 100644
--- a/ci/containers/alpine-edge.Dockerfile
+++ b/ci/containers/alpine-edge.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile alpine-edge libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/centos-8.Dockerfile
b/ci/containers/centos-8.Dockerfile
index 1e05d4cda98a..d46b428f726c 100644
--- a/ci/containers/centos-8.Dockerfile
+++ b/ci/containers/centos-8.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile centos-8 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/centos-stream-8.Dockerfile
b/ci/containers/centos-stream-8.Dockerfile
index 8f2dff57b3a3..613d05d6ec0c 100644
--- a/ci/containers/centos-stream-8.Dockerfile
+++ b/ci/containers/centos-stream-8.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile centos-stream-8 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/debian-10-cross-i686.Dockerfile
b/ci/containers/debian-10-cross-i686.Dockerfile
index c7c8dca8df4e..5641f58b71fe 100644
--- a/ci/containers/debian-10-cross-i686.Dockerfile
+++ b/ci/containers/debian-10-cross-i686.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile --cross i686 debian-10 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/debian-10.Dockerfile
b/ci/containers/debian-10.Dockerfile
index fbea28350a06..6cc51ec44de2 100644
--- a/ci/containers/debian-10.Dockerfile
+++ b/ci/containers/debian-10.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile debian-10 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/debian-11-cross-i686.Dockerfile
b/ci/containers/debian-11-cross-i686.Dockerfile
index e0d4fc15961d..fe19aa21c2ed 100644
--- a/ci/containers/debian-11-cross-i686.Dockerfile
+++ b/ci/containers/debian-11-cross-i686.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile --cross i686 debian-11 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/debian-11.Dockerfile
b/ci/containers/debian-11.Dockerfile
index c817870daa73..cb52e7eb4db3 100644
--- a/ci/containers/debian-11.Dockerfile
+++ b/ci/containers/debian-11.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile debian-11 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/debian-sid.Dockerfile
b/ci/containers/debian-sid.Dockerfile
index 909b772c473f..e5a3b663b105 100644
--- a/ci/containers/debian-sid.Dockerfile
+++ b/ci/containers/debian-sid.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile debian-sid libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/fedora-33.Dockerfile
b/ci/containers/fedora-33.Dockerfile
index 353aa0d1e789..9c0bfa954182 100644
--- a/ci/containers/fedora-33.Dockerfile
+++ b/ci/containers/fedora-33.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile fedora-33 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/fedora-34-cross-i686.Dockerfile
b/ci/containers/fedora-34-cross-i686.Dockerfile
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/ci/containers/fedora-34.Dockerfile
b/ci/containers/fedora-34.Dockerfile
index 35d84cc3e0f2..b3f57abfd096 100644
--- a/ci/containers/fedora-34.Dockerfile
+++ b/ci/containers/fedora-34.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile fedora-34 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/fedora-rawhide.Dockerfile
b/ci/containers/fedora-rawhide.Dockerfile
index acbb61f0e74a..49c3e69cc7d6 100644
--- a/ci/containers/fedora-rawhide.Dockerfile
+++ b/ci/containers/fedora-rawhide.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile fedora-rawhide libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/opensuse-leap-152.Dockerfile
b/ci/containers/opensuse-leap-152.Dockerfile
index 050ec442151e..330399253786 100644
--- a/ci/containers/opensuse-leap-152.Dockerfile
+++ b/ci/containers/opensuse-leap-152.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile opensuse-leap-152 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/opensuse-tumbleweed.Dockerfile
b/ci/containers/opensuse-tumbleweed.Dockerfile
index bbcdd3220094..96d4298a5db1 100644
--- a/ci/containers/opensuse-tumbleweed.Dockerfile
+++ b/ci/containers/opensuse-tumbleweed.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile opensuse-tumbleweed libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/ubuntu-1804.Dockerfile
b/ci/containers/ubuntu-1804.Dockerfile
index 72dc53b39c13..a172a0cbac4e 100644
--- a/ci/containers/ubuntu-1804.Dockerfile
+++ b/ci/containers/ubuntu-1804.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile ubuntu-1804 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/containers/ubuntu-2004.Dockerfile
b/ci/containers/ubuntu-2004.Dockerfile
index 6a11fae8d27c..88ea6cfe70dd 100644
--- a/ci/containers/ubuntu-2004.Dockerfile
+++ b/ci/containers/ubuntu-2004.Dockerfile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTO-GENERATED
#
-# $ lcitool dockerfile ubuntu-2004 libnbd
+# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
diff --git a/ci/gitlab.yml b/ci/gitlab.yml
new file mode 100644
index 000000000000..df3f68ad5587
--- /dev/null
+++ b/ci/gitlab.yml
@@ -0,0 +1,413 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+
+.container_job:
+ image: docker:stable
+ stage: containers
+ needs: []
+ services:
+ - name: registry.gitlab.com/libvirt/libvirt-ci/docker-dind:master
+ alias: docker
+ before_script:
+ - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
+ - export COMMON_TAG="$CI_REGISTRY/nbdkit/libnbd/ci-$NAME:latest"
+ - docker info
+ - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p
"$CI_REGISTRY_PASSWORD"
+ script:
+ - docker pull "$TAG" || docker pull "$COMMON_TAG" ||
true
+ - docker build --cache-from "$TAG" --cache-from
"$COMMON_TAG" --tag "$TAG" -f
"ci/containers/$NAME.Dockerfile" ci/containers
+ - docker push "$TAG"
+ after_script:
+ - docker logout
+
+
+.gitlab_native_build_job:
+ image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+ stage: builds
+
+
+.gitlab_cross_build_job:
+ image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
+ stage: builds
+
+
+.cirrus_build_job:
+ stage: builds
+ image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
+ needs: []
+ script:
+ - source ci/cirrus/$NAME.vars
+ - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
+ -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
+ -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
+ -e
"s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
+ -e
"s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
+ -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
+ -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
+ -e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g"
+ -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
+ -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
+ -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
+ -e "s|[@]PKGS@|$PKGS|g"
+ -e "s|[@]MAKE@|$MAKE|g"
+ -e "s|[@]PYTHON@|$PYTHON|g"
+ -e "s|[@]PIP3@|$PIP3|g"
+ -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
+ -e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g"
+ <ci/cirrus/build.yml >ci/cirrus/$NAME.yml
+ - cat ci/cirrus/$NAME.yml
+ - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
+ rules:
+ - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
+
+
+# Native container jobs
+
+x86_64-alpine-314-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: alpine-314
+
+
+x86_64-alpine-edge-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: alpine-edge
+
+
+x86_64-centos-8-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: centos-8
+
+
+x86_64-centos-stream-8-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: centos-stream-8
+
+
+x86_64-debian-10-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-10
+
+
+x86_64-debian-11-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-11
+
+
+x86_64-debian-sid-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-sid
+
+
+x86_64-fedora-33-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: fedora-33
+
+
+x86_64-fedora-34-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: fedora-34
+
+
+x86_64-fedora-rawhide-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: fedora-rawhide
+
+
+x86_64-opensuse-leap-152-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: opensuse-leap-152
+
+
+x86_64-opensuse-tumbleweed-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: opensuse-tumbleweed
+
+
+x86_64-ubuntu-1804-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: ubuntu-1804
+
+
+x86_64-ubuntu-2004-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: ubuntu-2004
+
+
+
+# Cross container jobs
+
+i686-debian-10-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-10-cross-i686
+
+
+i686-debian-11-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-11-cross-i686
+
+
+# Native build jobs
+
+x86_64-alpine-314:
+ extends: .native_build_job
+ needs:
+ - x86_64-alpine-314-container
+ allow_failure: false
+ variables:
+ NAME: alpine-314
+
+
+x86_64-alpine-edge:
+ extends: .native_build_job
+ needs:
+ - x86_64-alpine-edge-container
+ allow_failure: false
+ variables:
+ NAME: alpine-edge
+
+
+x86_64-centos-8:
+ extends: .native_build_job
+ needs:
+ - x86_64-centos-8-container
+ allow_failure: false
+ variables:
+ NAME: centos-8
+
+
+x86_64-centos-8-clang:
+ extends: .native_build_job
+ needs:
+ - x86_64-centos-8-container
+ allow_failure: false
+ variables:
+ NAME: centos-8
+ CC: clang
+
+
+x86_64-centos-stream-8:
+ extends: .native_build_job
+ needs:
+ - x86_64-centos-stream-8-container
+ allow_failure: false
+ variables:
+ NAME: centos-stream-8
+
+
+x86_64-debian-10:
+ extends: .native_build_job
+ needs:
+ - x86_64-debian-10-container
+ allow_failure: false
+ variables:
+ NAME: debian-10
+
+
+x86_64-debian-11:
+ extends: .native_build_job
+ needs:
+ - x86_64-debian-11-container
+ allow_failure: false
+ variables:
+ NAME: debian-11
+
+
+x86_64-debian-sid:
+ extends: .native_build_job
+ needs:
+ - x86_64-debian-sid-container
+ allow_failure: false
+ variables:
+ NAME: debian-sid
+
+
+x86_64-fedora-33:
+ extends: .native_build_job
+ needs:
+ - x86_64-fedora-33-container
+ allow_failure: false
+ variables:
+ NAME: fedora-33
+
+
+x86_64-fedora-34:
+ extends: .native_build_job
+ needs:
+ - x86_64-fedora-34-container
+ allow_failure: false
+ variables:
+ NAME: fedora-34
+
+
+x86_64-fedora-rawhide:
+ extends: .native_build_job
+ needs:
+ - x86_64-fedora-rawhide-container
+ allow_failure: false
+ variables:
+ NAME: fedora-rawhide
+
+
+x86_64-fedora-rawhide-clang:
+ extends: .native_build_job
+ needs:
+ - x86_64-fedora-rawhide-container
+ allow_failure: false
+ variables:
+ NAME: fedora-rawhide
+ CC: clang
+
+
+x86_64-opensuse-leap-152:
+ extends: .native_build_job
+ needs:
+ - x86_64-opensuse-leap-152-container
+ allow_failure: false
+ variables:
+ NAME: opensuse-leap-152
+
+
+x86_64-opensuse-tumbleweed:
+ extends: .native_build_job
+ needs:
+ - x86_64-opensuse-tumbleweed-container
+ allow_failure: false
+ variables:
+ NAME: opensuse-tumbleweed
+
+
+x86_64-ubuntu-1804:
+ extends: .native_build_job
+ needs:
+ - x86_64-ubuntu-1804-container
+ allow_failure: false
+ variables:
+ NAME: ubuntu-1804
+
+
+x86_64-ubuntu-2004:
+ extends: .native_build_job
+ needs:
+ - x86_64-ubuntu-2004-container
+ allow_failure: false
+ variables:
+ NAME: ubuntu-2004
+
+
+
+# Cross build jobs
+
+i686-debian-10:
+ extends: .cross_build_job
+ needs:
+ - i686-debian-10-container
+ allow_failure: false
+ variables:
+ NAME: debian-10
+ CROSS: i686
+
+
+i686-debian-11:
+ extends: .cross_build_job
+ needs:
+ - i686-debian-11-container
+ allow_failure: false
+ variables:
+ NAME: debian-11
+ CROSS: i686
+
+
+# Native cirrus build jobs
+
+x86_64-freebsd-12:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ NAME: freebsd-12
+ CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+ CIRRUS_VM_IMAGE_SELECTOR: image_family
+ CIRRUS_VM_IMAGE_NAME: freebsd-12-2
+ UPDATE_COMMAND: pkg update
+ UPGRADE_COMMAND: pkg upgrade -y
+ INSTALL_COMMAND: pkg install -y
+
+
+x86_64-freebsd-13:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ NAME: freebsd-13
+ CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+ CIRRUS_VM_IMAGE_SELECTOR: image_family
+ CIRRUS_VM_IMAGE_NAME: freebsd-13-0
+ UPDATE_COMMAND: pkg update
+ UPGRADE_COMMAND: pkg upgrade -y
+ INSTALL_COMMAND: pkg install -y
+
+
+x86_64-freebsd-current:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ NAME: freebsd-current
+ CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+ CIRRUS_VM_IMAGE_SELECTOR: image_family
+ CIRRUS_VM_IMAGE_NAME: freebsd-13-0-snap
+ UPDATE_COMMAND: pkg update
+ UPGRADE_COMMAND: pkg upgrade -y
+ INSTALL_COMMAND: pkg install -y
+
+
+x86_64-macos-11:
+ extends: .cirrus_build_job
+ needs: []
+ allow_failure: false
+ variables:
+ NAME: macos-11
+ CIRRUS_VM_INSTANCE_TYPE: osx_instance
+ CIRRUS_VM_IMAGE_SELECTOR: image
+ CIRRUS_VM_IMAGE_NAME: big-sur-base
+ UPDATE_COMMAND: brew update
+ UPGRADE_COMMAND: brew upgrade
+ INSTALL_COMMAND: brew install
+ PATH_EXTRA:
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
+ PKG_CONFIG_PATH:
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
diff --git a/ci/manifest.yml b/ci/manifest.yml
new file mode 100644
index 000000000000..2439ed01eea2
--- /dev/null
+++ b/ci/manifest.yml
@@ -0,0 +1,72 @@
+projects:
+ - libnbd
+
+gitlab:
+ namespace: nbdkit
+ project: libnbd
+ jobs:
+ check-dco: false
+
+targets:
+ alpine-314: x86_64
+
+ alpine-edge: x86_64
+
+ centos-8:
+ jobs:
+ - arch: x86_64
+
+ - arch: x86_64
+ suffix: -clang
+ variables:
+ CC: clang
+
+ centos-stream-8: x86_64
+
+ debian-10:
+ jobs:
+ - arch: x86_64
+ - arch: i686
+
+ debian-11:
+ jobs:
+ - arch: x86_64
+ - arch: i686
+
+ debian-sid: x86_64
+
+ fedora-33: x86_64
+
+ fedora-34: x86_64
+
+ fedora-rawhide:
+ jobs:
+ - arch: x86_64
+
+ - arch: x86_64
+ suffix: -clang
+ variables:
+ CC: clang
+
+ freebsd-12: x86_64
+
+ freebsd-13: x86_64
+
+ freebsd-current: x86_64
+
+ opensuse-leap-152: x86_64
+
+ opensuse-tumbleweed: x86_64
+
+ macos-11:
+ jobs:
+ - arch: x86_64
+ variables:
+ PATH_EXTRA:
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
+ PKG_CONFIG_PATH:
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
+
+ ubuntu-1804: x86_64
+
+ ubuntu-2004:
+ jobs:
+ - arch: x86_64
diff --git a/ci/refresh b/ci/refresh
deleted file mode 100755
index 8a276e42dec6..000000000000
--- a/ci/refresh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-if test -z "$1"
-then
- echo "syntax: $0 PATH-TO-LCITOOL"
- exit 1
-fi
-
-LCITOOL=$1
-
-if ! test -x "$LCITOOL"
-then
- echo "$LCITOOL is not executable"
- exit 1
-fi
-
-ci_path=$(dirname "$0")
-
-for target in $($LCITOOL targets)
-do
- if echo "$target" | grep -q -e 'freebsd' -e
'macos'
- then
- $LCITOOL variables "$target" libnbd
>"$ci_path/cirrus/$target.vars"
- else
- if test "$target" = "debian-11" -o
"$target" = "debian-10"
- then
- $LCITOOL dockerfile -x i686 "$target" \
- libnbd
>"$ci_path/containers/$target-cross-i686.Dockerfile"
- fi
-
- $LCITOOL dockerfile "$target" libnbd
>"$ci_path/containers/$target.Dockerfile"
- fi
-done
--
2.33.0
Richard W.M. Jones
2021-Sep-23 14:43 UTC
[Libguestfs] [libnbd PATCH] ci: Adopt libvirt-ci's manifest approach
On Thu, Sep 23, 2021 at 04:40:59PM +0200, Martin Kletzander wrote:> This makes it a bit easier to write .gitlab-ci.yml as it inherits most of what > can be generated from the ci/gitlab.yml and deprecates the ci/refresh script. > > Signed-off-by: Martin Kletzander <mkletzan at redhat.com>Looks fine, ACK Just missed 1.10 by about 15 minutes :-) Rich.> .gitlab-ci.yml | 270 +----------- > ci/README.rst | 7 +- > ci/cirrus/freebsd-12.vars | 2 +- > ci/cirrus/freebsd-13.vars | 2 +- > ci/cirrus/freebsd-current.vars | 2 +- > ci/cirrus/macos-11.vars | 2 +- > ci/containers/alpine-314.Dockerfile | 2 +- > ci/containers/alpine-edge.Dockerfile | 2 +- > ci/containers/centos-8.Dockerfile | 2 +- > ci/containers/centos-stream-8.Dockerfile | 2 +- > ci/containers/debian-10-cross-i686.Dockerfile | 2 +- > ci/containers/debian-10.Dockerfile | 2 +- > ci/containers/debian-11-cross-i686.Dockerfile | 2 +- > ci/containers/debian-11.Dockerfile | 2 +- > ci/containers/debian-sid.Dockerfile | 2 +- > ci/containers/fedora-33.Dockerfile | 2 +- > ci/containers/fedora-34-cross-i686.Dockerfile | 0 > ci/containers/fedora-34.Dockerfile | 2 +- > ci/containers/fedora-rawhide.Dockerfile | 2 +- > ci/containers/opensuse-leap-152.Dockerfile | 2 +- > ci/containers/opensuse-tumbleweed.Dockerfile | 2 +- > ci/containers/ubuntu-1804.Dockerfile | 2 +- > ci/containers/ubuntu-2004.Dockerfile | 2 +- > ci/gitlab.yml | 413 ++++++++++++++++++ > ci/manifest.yml | 72 +++ > ci/refresh | 33 -- > 26 files changed, 520 insertions(+), 315 deletions(-) > delete mode 100644 ci/containers/fedora-34-cross-i686.Dockerfile > create mode 100644 ci/gitlab.yml > create mode 100644 ci/manifest.yml > delete mode 100755 ci/refresh > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 8976015b1e20..122bc0860178 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -13,30 +13,10 @@ stages: > export CCACHE_MAXSIZE="500M" > export PATH="$CCACHE_WRAPPERSDIR:$PATH" > > -# Common templates > - > -.container_job: > - image: docker:stable > - stage: containers > - needs: [] > - services: > - - name: registry.gitlab.com/libvirt/libvirt-ci/docker-dind:master > - alias: docker > - before_script: > - - export TAG="$CI_REGISTRY_IMAGE/$NAME:latest" > - - export COMMON_TAG="$CI_REGISTRY/nbdkit/libnbd/$NAME:latest" > - - docker info > - - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" > - script: > - - docker pull "$TAG" || docker pull "$COMMON_TAG" || true > - - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers > - - docker push "$TAG" > - after_script: > - - docker logout > +include: '/ci/gitlab.yml' > > .base_build_job: > stage: builds > - image: $CI_REGISTRY_IMAGE/$NAME:latest > cache: > paths: > - ccache/ > @@ -52,6 +32,16 @@ stages: > public: true > when: always > > +.native_build_job: > + extends: > + - .base_build_job > + - .gitlab_native_build_job > + > +.cross_build_job: > + extends: > + - .base_build_job > + - .gitlab_cross_build_job > + > # Jobs that we delegate to Cirrus CI because they require an operating > # system other than Linux. These jobs will only run if the required > # setup has been performed on the GitLab account (see ci/README.rst). > @@ -91,241 +81,3 @@ stages: > - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml > rules: > - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN" > - > -# Cross-compilation container build jobs > -i686-debian-10-container: > - extends: .container_job > - variables: > - NAME: debian-10-cross-i686 > - > -i686-debian-11-container: > - extends: .container_job > - variables: > - NAME: debian-11-cross-i686 > - > -# Native container build jobs > -x64-alpine-314-container: > - extends: .container_job > - variables: > - NAME: alpine-314 > - > -x64-alpine-edge-container: > - extends: .container_job > - variables: > - NAME: alpine-edge > - > -x64-centos-8-container: > - extends: .container_job > - variables: > - NAME: centos-8 > - > -x64-centos-stream-8-container: > - extends: .container_job > - variables: > - NAME: centos-stream-8 > - > -x64-debian-11-container: > - extends: .container_job > - variables: > - NAME: debian-11 > - > -x64-debian-sid-container: > - extends: .container_job > - variables: > - NAME: debian-sid > - > -x64-fedora-33-container: > - extends: .container_job > - variables: > - NAME: fedora-33 > - > -x64-fedora-34-container: > - extends: .container_job > - variables: > - NAME: fedora-34 > - > -x64-fedora-rawhide-container: > - extends: .container_job > - allow_failure: true > - variables: > - NAME: fedora-rawhide > - > -x64-opensuse-leap-152-container: > - extends: .container_job > - variables: > - NAME: opensuse-leap-152 > - > -x64-opensuse-tumbleweed-container: > - extends: .container_job > - variables: > - NAME: opensuse-tumbleweed > - > -x64-ubuntu-1804-container: > - extends: .container_job > - variables: > - NAME: ubuntu-1804 > - > -x64-ubuntu-2004-container: > - extends: .container_job > - variables: > - NAME: ubuntu-2004 > - > -# Cross-compilation build jobs > -i686-debian-10: > - extends: .base_build_job > - needs: > - - i686-debian-10-container > - variables: > - NAME: debian-10-cross-i686 > - CROSS: i686 > - > -i686-debian-11: > - extends: .base_build_job > - needs: > - - i686-debian-11-container > - variables: > - NAME: debian-11-cross-i686 > - CROSS: i686 > - > -# Native architecture build + test jobs > -x64-debian-11: > - extends: .base_build_job > - needs: > - - x64-debian-11-container > - variables: > - NAME: debian-11 > - > -x64-debian-sid: > - extends: .base_build_job > - needs: > - - x64-debian-sid-container > - variables: > - NAME: debian-sid > - > -x64-centos-8: > - extends: .base_build_job > - needs: > - - x64-centos-8-container > - variables: > - NAME: centos-8 > - > -x64-alpine-314: > - extends: .base_build_job > - needs: > - - x64-alpine-314-container > - variables: > - NAME: alpine-314 > - > -x64-alpine-edge: > - extends: .base_build_job > - needs: > - - x64-alpine-edge-container > - variables: > - NAME: alpine-edge > - > -x64-centos-8-clang: > - extends: .base_build_job > - needs: > - - x64-centos-8-container > - variables: > - NAME: centos-8 > - CC: clang > - > -x64-centos-stream-8: > - extends: .base_build_job > - needs: > - - x64-centos-stream-8-container > - variables: > - NAME: centos-stream-8 > - > -x64-fedora-33: > - extends: .base_build_job > - needs: > - - x64-fedora-33-container > - variables: > - NAME: fedora-33 > - > -x64-fedora-34: > - extends: .base_build_job > - needs: > - - x64-fedora-34-container > - variables: > - NAME: fedora-34 > - > -x64-fedora-rawhide: > - extends: .base_build_job > - needs: > - - x64-fedora-rawhide-container > - variables: > - NAME: fedora-rawhide > - > -x64-fedora-rawhide-clang: > - extends: .base_build_job > - needs: > - - x64-fedora-rawhide-container > - variables: > - NAME: fedora-rawhide > - CC: clang > - > -x64-opensuse-leap-152: > - extends: .base_build_job > - needs: > - - x64-opensuse-leap-152-container > - variables: > - NAME: opensuse-leap-152 > - > -x64-opensuse-tumbleweed: > - extends: .base_build_job > - needs: > - - x64-opensuse-tumbleweed-container > - variables: > - NAME: opensuse-tumbleweed > - > -x64-ubuntu-1804: > - extends: .base_build_job > - needs: > - - x64-ubuntu-1804-container > - variables: > - NAME: ubuntu-1804 > - GOLANG: skip > - > -x64-ubuntu-2004: > - extends: .base_build_job > - needs: > - - x64-ubuntu-2004-container > - variables: > - NAME: ubuntu-2004 > - > -x64-freebsd-12-build: > - extends: .cirrus_build_job > - variables: > - NAME: freebsd-12 > - CIRRUS_VM_INSTANCE_TYPE: freebsd_instance > - CIRRUS_VM_IMAGE_SELECTOR: image_family > - CIRRUS_VM_IMAGE_NAME: freebsd-12-2 > - UPDATE_COMMAND: pkg update > - INSTALL_COMMAND: pkg install -y > - > -x64-freebsd-13-build: > - extends: .cirrus_build_job > - variables: > - NAME: freebsd-13 > - CIRRUS_VM_INSTANCE_TYPE: freebsd_instance > - CIRRUS_VM_IMAGE_SELECTOR: image_family > - CIRRUS_VM_IMAGE_NAME: freebsd-13-0 > - UPDATE_COMMAND: pkg update > - INSTALL_COMMAND: pkg install -y > - > -x64-macos-11-build: > - extends: .cirrus_build_job > - allow_failure: true > - variables: > - NAME: macos-11 > - CIRRUS_VM_INSTANCE_TYPE: osx_instance > - CIRRUS_VM_IMAGE_SELECTOR: image > - CIRRUS_VM_IMAGE_NAME: big-sur-base > - UPDATE_COMMAND: brew update > - UPGRADE_COMMAND: brew upgrade > - INSTALL_COMMAND: brew install > - PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin > - PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig > diff --git a/ci/README.rst b/ci/README.rst > index c1c97362e41f..3d11e3a4d8bc 100644 > --- a/ci/README.rst > +++ b/ci/README.rst > @@ -35,9 +35,10 @@ Container images are prepared during the build and cached, so that they do not > need to be rebuilt for every run, or even built from scratch when changed > slightly. The cached container images can be deleted at any time as they will > be correctly rebuilt in case of a cache miss. The Dockerfiles are generated > -using ``lcitool`` and stored under ``ci/containers``. In that directory is also > -a ``refresh`` script which can regenerate those files, for example after an > -update to libvirt-ci (e.g. when adding a new dependency). > +using ``lcitool`` and stored under ``ci/containers``. In order to update the > +files one needs to run ``lcitool manifest ci/manifest.yml`` from the root of the > +git repository, for example after an update to libvirt-ci (e.g. when adding a > +new dependency). > > Recreating the builds locally is pretty straightforward. Choose a file from > ``ci/containers`` which represents the desired setup. In this example let's > diff --git a/ci/cirrus/freebsd-12.vars b/ci/cirrus/freebsd-12.vars > index 2573de241849..6f2b76ce5d11 100644 > --- a/ci/cirrus/freebsd-12.vars > +++ b/ci/cirrus/freebsd-12.vars > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool variables freebsd-12 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/cirrus/freebsd-13.vars b/ci/cirrus/freebsd-13.vars > index 40e8ddd43e49..6f2b76ce5d11 100644 > --- a/ci/cirrus/freebsd-13.vars > +++ b/ci/cirrus/freebsd-13.vars > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool variables freebsd-13 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/cirrus/freebsd-current.vars b/ci/cirrus/freebsd-current.vars > index 73dff989ffb4..6f2b76ce5d11 100644 > --- a/ci/cirrus/freebsd-current.vars > +++ b/ci/cirrus/freebsd-current.vars > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool variables freebsd-current libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/cirrus/macos-11.vars b/ci/cirrus/macos-11.vars > index eae75535a960..89bda78fd154 100644 > --- a/ci/cirrus/macos-11.vars > +++ b/ci/cirrus/macos-11.vars > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool variables macos-11 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/alpine-314.Dockerfile b/ci/containers/alpine-314.Dockerfile > index 0fb954abb66b..82960f71ecff 100644 > --- a/ci/containers/alpine-314.Dockerfile > +++ b/ci/containers/alpine-314.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile alpine-314 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/alpine-edge.Dockerfile b/ci/containers/alpine-edge.Dockerfile > index e27775d647fb..3e9fbfa223eb 100644 > --- a/ci/containers/alpine-edge.Dockerfile > +++ b/ci/containers/alpine-edge.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile alpine-edge libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/centos-8.Dockerfile b/ci/containers/centos-8.Dockerfile > index 1e05d4cda98a..d46b428f726c 100644 > --- a/ci/containers/centos-8.Dockerfile > +++ b/ci/containers/centos-8.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile centos-8 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/centos-stream-8.Dockerfile b/ci/containers/centos-stream-8.Dockerfile > index 8f2dff57b3a3..613d05d6ec0c 100644 > --- a/ci/containers/centos-stream-8.Dockerfile > +++ b/ci/containers/centos-stream-8.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile centos-stream-8 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/debian-10-cross-i686.Dockerfile b/ci/containers/debian-10-cross-i686.Dockerfile > index c7c8dca8df4e..5641f58b71fe 100644 > --- a/ci/containers/debian-10-cross-i686.Dockerfile > +++ b/ci/containers/debian-10-cross-i686.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile --cross i686 debian-10 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/debian-10.Dockerfile b/ci/containers/debian-10.Dockerfile > index fbea28350a06..6cc51ec44de2 100644 > --- a/ci/containers/debian-10.Dockerfile > +++ b/ci/containers/debian-10.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile debian-10 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/debian-11-cross-i686.Dockerfile b/ci/containers/debian-11-cross-i686.Dockerfile > index e0d4fc15961d..fe19aa21c2ed 100644 > --- a/ci/containers/debian-11-cross-i686.Dockerfile > +++ b/ci/containers/debian-11-cross-i686.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile --cross i686 debian-11 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/debian-11.Dockerfile b/ci/containers/debian-11.Dockerfile > index c817870daa73..cb52e7eb4db3 100644 > --- a/ci/containers/debian-11.Dockerfile > +++ b/ci/containers/debian-11.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile debian-11 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/debian-sid.Dockerfile b/ci/containers/debian-sid.Dockerfile > index 909b772c473f..e5a3b663b105 100644 > --- a/ci/containers/debian-sid.Dockerfile > +++ b/ci/containers/debian-sid.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile debian-sid libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/fedora-33.Dockerfile b/ci/containers/fedora-33.Dockerfile > index 353aa0d1e789..9c0bfa954182 100644 > --- a/ci/containers/fedora-33.Dockerfile > +++ b/ci/containers/fedora-33.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile fedora-33 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/fedora-34-cross-i686.Dockerfile b/ci/containers/fedora-34-cross-i686.Dockerfile > deleted file mode 100644 > index e69de29bb2d1..000000000000 > diff --git a/ci/containers/fedora-34.Dockerfile b/ci/containers/fedora-34.Dockerfile > index 35d84cc3e0f2..b3f57abfd096 100644 > --- a/ci/containers/fedora-34.Dockerfile > +++ b/ci/containers/fedora-34.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile fedora-34 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/fedora-rawhide.Dockerfile b/ci/containers/fedora-rawhide.Dockerfile > index acbb61f0e74a..49c3e69cc7d6 100644 > --- a/ci/containers/fedora-rawhide.Dockerfile > +++ b/ci/containers/fedora-rawhide.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile fedora-rawhide libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/opensuse-leap-152.Dockerfile b/ci/containers/opensuse-leap-152.Dockerfile > index 050ec442151e..330399253786 100644 > --- a/ci/containers/opensuse-leap-152.Dockerfile > +++ b/ci/containers/opensuse-leap-152.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile opensuse-leap-152 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/opensuse-tumbleweed.Dockerfile b/ci/containers/opensuse-tumbleweed.Dockerfile > index bbcdd3220094..96d4298a5db1 100644 > --- a/ci/containers/opensuse-tumbleweed.Dockerfile > +++ b/ci/containers/opensuse-tumbleweed.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile opensuse-tumbleweed libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/ubuntu-1804.Dockerfile b/ci/containers/ubuntu-1804.Dockerfile > index 72dc53b39c13..a172a0cbac4e 100644 > --- a/ci/containers/ubuntu-1804.Dockerfile > +++ b/ci/containers/ubuntu-1804.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile ubuntu-1804 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/containers/ubuntu-2004.Dockerfile b/ci/containers/ubuntu-2004.Dockerfile > index 6a11fae8d27c..88ea6cfe70dd 100644 > --- a/ci/containers/ubuntu-2004.Dockerfile > +++ b/ci/containers/ubuntu-2004.Dockerfile > @@ -1,6 +1,6 @@ > # THIS FILE WAS AUTO-GENERATED > # > -# $ lcitool dockerfile ubuntu-2004 libnbd > +# $ lcitool manifest ci/manifest.yml > # > # https://gitlab.com/libvirt/libvirt-ci > > diff --git a/ci/gitlab.yml b/ci/gitlab.yml > new file mode 100644 > index 000000000000..df3f68ad5587 > --- /dev/null > +++ b/ci/gitlab.yml > @@ -0,0 +1,413 @@ > +# THIS FILE WAS AUTO-GENERATED > +# > +# $ lcitool manifest ci/manifest.yml > +# > +# https://gitlab.com/libvirt/libvirt-ci > + > + > +.container_job: > + image: docker:stable > + stage: containers > + needs: [] > + services: > + - name: registry.gitlab.com/libvirt/libvirt-ci/docker-dind:master > + alias: docker > + before_script: > + - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest" > + - export COMMON_TAG="$CI_REGISTRY/nbdkit/libnbd/ci-$NAME:latest" > + - docker info > + - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" > + script: > + - docker pull "$TAG" || docker pull "$COMMON_TAG" || true > + - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers > + - docker push "$TAG" > + after_script: > + - docker logout > + > + > +.gitlab_native_build_job: > + image: $CI_REGISTRY_IMAGE/ci-$NAME:latest > + stage: builds > + > + > +.gitlab_cross_build_job: > + image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest > + stage: builds > + > + > +.cirrus_build_job: > + stage: builds > + image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master > + needs: [] > + script: > + - source ci/cirrus/$NAME.vars > + - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g" > + -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g" > + -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g" > + -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g" > + -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g" > + -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g" > + -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g" > + -e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g" > + -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g" > + -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g" > + -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g" > + -e "s|[@]PKGS@|$PKGS|g" > + -e "s|[@]MAKE@|$MAKE|g" > + -e "s|[@]PYTHON@|$PYTHON|g" > + -e "s|[@]PIP3@|$PIP3|g" > + -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g" > + -e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g" > + <ci/cirrus/build.yml >ci/cirrus/$NAME.yml > + - cat ci/cirrus/$NAME.yml > + - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml > + rules: > + - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN" > + > + > +# Native container jobs > + > +x86_64-alpine-314-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: alpine-314 > + > + > +x86_64-alpine-edge-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: alpine-edge > + > + > +x86_64-centos-8-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: centos-8 > + > + > +x86_64-centos-stream-8-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: centos-stream-8 > + > + > +x86_64-debian-10-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: debian-10 > + > + > +x86_64-debian-11-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: debian-11 > + > + > +x86_64-debian-sid-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: debian-sid > + > + > +x86_64-fedora-33-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: fedora-33 > + > + > +x86_64-fedora-34-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: fedora-34 > + > + > +x86_64-fedora-rawhide-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: fedora-rawhide > + > + > +x86_64-opensuse-leap-152-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: opensuse-leap-152 > + > + > +x86_64-opensuse-tumbleweed-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: opensuse-tumbleweed > + > + > +x86_64-ubuntu-1804-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: ubuntu-1804 > + > + > +x86_64-ubuntu-2004-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: ubuntu-2004 > + > + > + > +# Cross container jobs > + > +i686-debian-10-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: debian-10-cross-i686 > + > + > +i686-debian-11-container: > + extends: .container_job > + allow_failure: false > + variables: > + NAME: debian-11-cross-i686 > + > + > +# Native build jobs > + > +x86_64-alpine-314: > + extends: .native_build_job > + needs: > + - x86_64-alpine-314-container > + allow_failure: false > + variables: > + NAME: alpine-314 > + > + > +x86_64-alpine-edge: > + extends: .native_build_job > + needs: > + - x86_64-alpine-edge-container > + allow_failure: false > + variables: > + NAME: alpine-edge > + > + > +x86_64-centos-8: > + extends: .native_build_job > + needs: > + - x86_64-centos-8-container > + allow_failure: false > + variables: > + NAME: centos-8 > + > + > +x86_64-centos-8-clang: > + extends: .native_build_job > + needs: > + - x86_64-centos-8-container > + allow_failure: false > + variables: > + NAME: centos-8 > + CC: clang > + > + > +x86_64-centos-stream-8: > + extends: .native_build_job > + needs: > + - x86_64-centos-stream-8-container > + allow_failure: false > + variables: > + NAME: centos-stream-8 > + > + > +x86_64-debian-10: > + extends: .native_build_job > + needs: > + - x86_64-debian-10-container > + allow_failure: false > + variables: > + NAME: debian-10 > + > + > +x86_64-debian-11: > + extends: .native_build_job > + needs: > + - x86_64-debian-11-container > + allow_failure: false > + variables: > + NAME: debian-11 > + > + > +x86_64-debian-sid: > + extends: .native_build_job > + needs: > + - x86_64-debian-sid-container > + allow_failure: false > + variables: > + NAME: debian-sid > + > + > +x86_64-fedora-33: > + extends: .native_build_job > + needs: > + - x86_64-fedora-33-container > + allow_failure: false > + variables: > + NAME: fedora-33 > + > + > +x86_64-fedora-34: > + extends: .native_build_job > + needs: > + - x86_64-fedora-34-container > + allow_failure: false > + variables: > + NAME: fedora-34 > + > + > +x86_64-fedora-rawhide: > + extends: .native_build_job > + needs: > + - x86_64-fedora-rawhide-container > + allow_failure: false > + variables: > + NAME: fedora-rawhide > + > + > +x86_64-fedora-rawhide-clang: > + extends: .native_build_job > + needs: > + - x86_64-fedora-rawhide-container > + allow_failure: false > + variables: > + NAME: fedora-rawhide > + CC: clang > + > + > +x86_64-opensuse-leap-152: > + extends: .native_build_job > + needs: > + - x86_64-opensuse-leap-152-container > + allow_failure: false > + variables: > + NAME: opensuse-leap-152 > + > + > +x86_64-opensuse-tumbleweed: > + extends: .native_build_job > + needs: > + - x86_64-opensuse-tumbleweed-container > + allow_failure: false > + variables: > + NAME: opensuse-tumbleweed > + > + > +x86_64-ubuntu-1804: > + extends: .native_build_job > + needs: > + - x86_64-ubuntu-1804-container > + allow_failure: false > + variables: > + NAME: ubuntu-1804 > + > + > +x86_64-ubuntu-2004: > + extends: .native_build_job > + needs: > + - x86_64-ubuntu-2004-container > + allow_failure: false > + variables: > + NAME: ubuntu-2004 > + > + > + > +# Cross build jobs > + > +i686-debian-10: > + extends: .cross_build_job > + needs: > + - i686-debian-10-container > + allow_failure: false > + variables: > + NAME: debian-10 > + CROSS: i686 > + > + > +i686-debian-11: > + extends: .cross_build_job > + needs: > + - i686-debian-11-container > + allow_failure: false > + variables: > + NAME: debian-11 > + CROSS: i686 > + > + > +# Native cirrus build jobs > + > +x86_64-freebsd-12: > + extends: .cirrus_build_job > + needs: [] > + allow_failure: false > + variables: > + NAME: freebsd-12 > + CIRRUS_VM_INSTANCE_TYPE: freebsd_instance > + CIRRUS_VM_IMAGE_SELECTOR: image_family > + CIRRUS_VM_IMAGE_NAME: freebsd-12-2 > + UPDATE_COMMAND: pkg update > + UPGRADE_COMMAND: pkg upgrade -y > + INSTALL_COMMAND: pkg install -y > + > + > +x86_64-freebsd-13: > + extends: .cirrus_build_job > + needs: [] > + allow_failure: false > + variables: > + NAME: freebsd-13 > + CIRRUS_VM_INSTANCE_TYPE: freebsd_instance > + CIRRUS_VM_IMAGE_SELECTOR: image_family > + CIRRUS_VM_IMAGE_NAME: freebsd-13-0 > + UPDATE_COMMAND: pkg update > + UPGRADE_COMMAND: pkg upgrade -y > + INSTALL_COMMAND: pkg install -y > + > + > +x86_64-freebsd-current: > + extends: .cirrus_build_job > + needs: [] > + allow_failure: false > + variables: > + NAME: freebsd-current > + CIRRUS_VM_INSTANCE_TYPE: freebsd_instance > + CIRRUS_VM_IMAGE_SELECTOR: image_family > + CIRRUS_VM_IMAGE_NAME: freebsd-13-0-snap > + UPDATE_COMMAND: pkg update > + UPGRADE_COMMAND: pkg upgrade -y > + INSTALL_COMMAND: pkg install -y > + > + > +x86_64-macos-11: > + extends: .cirrus_build_job > + needs: [] > + allow_failure: false > + variables: > + NAME: macos-11 > + CIRRUS_VM_INSTANCE_TYPE: osx_instance > + CIRRUS_VM_IMAGE_SELECTOR: image > + CIRRUS_VM_IMAGE_NAME: big-sur-base > + UPDATE_COMMAND: brew update > + UPGRADE_COMMAND: brew upgrade > + INSTALL_COMMAND: brew install > + PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin > + PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig > diff --git a/ci/manifest.yml b/ci/manifest.yml > new file mode 100644 > index 000000000000..2439ed01eea2 > --- /dev/null > +++ b/ci/manifest.yml > @@ -0,0 +1,72 @@ > +projects: > + - libnbd > + > +gitlab: > + namespace: nbdkit > + project: libnbd > + jobs: > + check-dco: false > + > +targets: > + alpine-314: x86_64 > + > + alpine-edge: x86_64 > + > + centos-8: > + jobs: > + - arch: x86_64 > + > + - arch: x86_64 > + suffix: -clang > + variables: > + CC: clang > + > + centos-stream-8: x86_64 > + > + debian-10: > + jobs: > + - arch: x86_64 > + - arch: i686 > + > + debian-11: > + jobs: > + - arch: x86_64 > + - arch: i686 > + > + debian-sid: x86_64 > + > + fedora-33: x86_64 > + > + fedora-34: x86_64 > + > + fedora-rawhide: > + jobs: > + - arch: x86_64 > + > + - arch: x86_64 > + suffix: -clang > + variables: > + CC: clang > + > + freebsd-12: x86_64 > + > + freebsd-13: x86_64 > + > + freebsd-current: x86_64 > + > + opensuse-leap-152: x86_64 > + > + opensuse-tumbleweed: x86_64 > + > + macos-11: > + jobs: > + - arch: x86_64 > + variables: > + PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin > + PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig > + > + ubuntu-1804: x86_64 > + > + ubuntu-2004: > + jobs: > + - arch: x86_64 > diff --git a/ci/refresh b/ci/refresh > deleted file mode 100755 > index 8a276e42dec6..000000000000 > --- a/ci/refresh > +++ /dev/null > @@ -1,33 +0,0 @@ > -#!/bin/sh > - > -if test -z "$1" > -then > - echo "syntax: $0 PATH-TO-LCITOOL" > - exit 1 > -fi > - > -LCITOOL=$1 > - > -if ! test -x "$LCITOOL" > -then > - echo "$LCITOOL is not executable" > - exit 1 > -fi > - > -ci_path=$(dirname "$0") > - > -for target in $($LCITOOL targets) > -do > - if echo "$target" | grep -q -e 'freebsd' -e 'macos' > - then > - $LCITOOL variables "$target" libnbd >"$ci_path/cirrus/$target.vars" > - else > - if test "$target" = "debian-11" -o "$target" = "debian-10" > - then > - $LCITOOL dockerfile -x i686 "$target" \ > - libnbd >"$ci_path/containers/$target-cross-i686.Dockerfile" > - fi > - > - $LCITOOL dockerfile "$target" libnbd >"$ci_path/containers/$target.Dockerfile" > - fi > -done > -- > 2.33.0-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v
Daniel P. Berrangé
2021-Sep-23 14:58 UTC
[Libguestfs] [libnbd PATCH] ci: Adopt libvirt-ci's manifest approach
On Thu, Sep 23, 2021 at 04:40:59PM +0200, Martin Kletzander wrote:> This makes it a bit easier to write .gitlab-ci.yml as it inherits most of what > can be generated from the ci/gitlab.yml and deprecates the ci/refresh script. > > Signed-off-by: Martin Kletzander <mkletzan at redhat.com> > --- > .gitlab-ci.yml | 270 +----------- > ci/README.rst | 7 +- > ci/cirrus/freebsd-12.vars | 2 +- > ci/cirrus/freebsd-13.vars | 2 +- > ci/cirrus/freebsd-current.vars | 2 +- > ci/cirrus/macos-11.vars | 2 +- > ci/containers/alpine-314.Dockerfile | 2 +- > ci/containers/alpine-edge.Dockerfile | 2 +- > ci/containers/centos-8.Dockerfile | 2 +- > ci/containers/centos-stream-8.Dockerfile | 2 +- > ci/containers/debian-10-cross-i686.Dockerfile | 2 +- > ci/containers/debian-10.Dockerfile | 2 +- > ci/containers/debian-11-cross-i686.Dockerfile | 2 +- > ci/containers/debian-11.Dockerfile | 2 +- > ci/containers/debian-sid.Dockerfile | 2 +- > ci/containers/fedora-33.Dockerfile | 2 +- > ci/containers/fedora-34-cross-i686.Dockerfile | 0 > ci/containers/fedora-34.Dockerfile | 2 +- > ci/containers/fedora-rawhide.Dockerfile | 2 +- > ci/containers/opensuse-leap-152.Dockerfile | 2 +- > ci/containers/opensuse-tumbleweed.Dockerfile | 2 +- > ci/containers/ubuntu-1804.Dockerfile | 2 +- > ci/containers/ubuntu-2004.Dockerfile | 2 +- > ci/gitlab.yml | 413 ++++++++++++++++++ > ci/manifest.yml | 72 +++ > ci/refresh | 33 -- > 26 files changed, 520 insertions(+), 315 deletions(-) > delete mode 100644 ci/containers/fedora-34-cross-i686.Dockerfile > create mode 100644 ci/gitlab.yml > create mode 100644 ci/manifest.yml > delete mode 100755 ci/refresh> diff --git a/ci/manifest.yml b/ci/manifest.yml > new file mode 100644 > index 000000000000..2439ed01eea2 > --- /dev/null > +++ b/ci/manifest.yml > @@ -0,0 +1,72 @@ > +projects: > + - libnbd > + > +gitlab: > + namespace: nbdkit > + project: libnbd > + jobs: > + check-dco: false > + > +targets: > + alpine-314: x86_64 > + > + alpine-edge: x86_64 > + > + centos-8: > + jobs: > + - arch: x86_64 > + > + - arch: x86_64 > + suffix: -clang > + variables: > + CC: clang > + > + centos-stream-8: x86_64 > + > + debian-10: > + jobs: > + - arch: x86_64 > + - arch: i686 > + > + debian-11: > + jobs: > + - arch: x86_64 > + - arch: i686 > + > + debian-sid: x86_64 > + > + fedora-33: x86_64 > + > + fedora-34: x86_64 > + > + fedora-rawhide: > + jobs: > + - arch: x86_64 > + > + - arch: x86_64 > + suffix: -clang > + variables: > + CC: clang > + > + freebsd-12: x86_64 > + > + freebsd-13: x86_64 > + > + freebsd-current: x86_64 > + > + opensuse-leap-152: x86_64 > + > + opensuse-tumbleweed: x86_64 > + > + macos-11: > + jobs: > + - arch: x86_64 > + variables: > + PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin > + PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig > + > + ubuntu-1804: x86_64 > + > + ubuntu-2004: > + jobs: > + - arch: x86_64Can be simplified like the ubuntu-1804 def Reviewed-by: Daniel P. Berrang? <berrange at redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|