[Libguestfs] [libnbd PATCH] ci: Adopt libvirt-ci's manifest approach

Richard W.M. Jones rjones at redhat.com
Thu Sep 23 14:43:17 UTC 2021


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




More information about the Libguestfs mailing list