|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/4] automation/cirrus-ci: use matrix keyword to generate per-version build tasks
On Thu, 20 Mar 2025, Roger Pau Monne wrote:
> Move the current logic to use the matrix keyword to generate a task for
> each version of FreeBSD we want to build Xen on. The matrix keyword
> however cannot be used in YAML aliases, so it needs to be explicitly used
> inside of each task, which creates a bit of duplication. At least abstract
> the FreeBSD minor version numbers to avoid repetition of image names.
>
> Note that the full build uses matrix over an env variable instead of using
> it directly in image_family. This is so that the alias can also be set
> based on the FreeBSD version, in preparation for adding further tasks that
> will depend on the full build having finished.
>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> Changes since v1:
> - Use FreeBSD_{LEGACY,PRODUCTION,CURRENT} to refer to development release,
> current release, and current release - 1.
> ---
> .cirrus.yml | 78 +++++++++++++++++++++++++----------------------------
> 1 file changed, 37 insertions(+), 41 deletions(-)
>
> diff --git a/.cirrus.yml b/.cirrus.yml
> index 490f214f0460..95d2d2d3db2e 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -1,13 +1,9 @@
> #
> https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
> -freebsd_13: &FREEBSD_13
> - freebsd_instance:
> - image_family: freebsd-13-5
> -freebsd_14: &FREEBSD_14
> - freebsd_instance:
> - image_family: freebsd-14-2
> -freebsd_15: &FREEBSD_15
> - freebsd_instance:
> - image_family: freebsd-15-0-snap
> +freebsd_versions: &FREEBSD_VERSIONS
> + env:
> + FREEBSD_LEGACY: freebsd-13-5
> + FREEBSD_PRODUCTION: freebsd-14-2
> + FREEBSD_CURRENT: freebsd-15-0-snap
>
> freebsd_template: &FREEBSD_ENV
> environment:
> @@ -24,7 +20,24 @@ freebsd_configure_artifacts: &FREEBSD_CONFIGURE_ARTIFACTS
> path: xen-config
> type: text/plain
>
> -freebsd_full_build_template: &FREEBSD_FULL_BUILD_TEMPLATE
> +task:
> + name: 'FreeBSD: full build'
> +
> + # It's not possible to use the matrix keyword in YAML aliases, as they
> + # keyword usage is restricted to task, docker_builder or pipe. Attempting
> to
> + # use a YAML alias with the duplicated keys doesn't work either. Use an env
> + # variable so the version can also be appended to the task alias.
> + << : *FREEBSD_VERSIONS
> + env:
> + matrix:
> + FREEBSD_VERSION: $FREEBSD_LEGACY
> + FREEBSD_VERSION: $FREEBSD_PRODUCTION
> + FREEBSD_VERSION: $FREEBSD_CURRENT
> +
> + alias: freebsd_full_$FREEBSD_VERSION
> + freebsd_instance:
> + image_family: $FREEBSD_VERSION
> +
> << : *FREEBSD_ENV
>
> install_script: pkg install -y seabios gmake ninja bash
> @@ -42,7 +55,20 @@ freebsd_full_build_template: &FREEBSD_FULL_BUILD_TEMPLATE
> build_script:
> - gmake -j`sysctl -n hw.ncpu` clang=y
>
> -freebsd_randconfig_template: &FREEBSD_RANDCONFIG_TEMPLATE
> +task:
> + name: 'FreeBSD: randconfig build'
> +
> + # It's not possible to use the matrix keyword in YAML aliases, as they
> + # keyword usage is restricted to task, docker_builder or pipe. Attempting
> to
> + # use a YAML alias with the duplicated `image_family` keys doesn't work
> + # either. Abstract the version numbers at least.
> + << : *FREEBSD_VERSIONS
> + freebsd_instance:
> + matrix:
> + image_family: $FREEBSD_LEGACY
> + image_family: $FREEBSD_PRODUCTION
> + image_family: $FREEBSD_CURRENT
> +
> << : *FREEBSD_ENV
>
> install_script: pkg install -y gmake python3 bison
> @@ -56,33 +82,3 @@ freebsd_randconfig_template: &FREEBSD_RANDCONFIG_TEMPLATE
>
> build_script:
> - gmake -j`sysctl -n hw.ncpu` build-xen clang=y
> -
> -task:
> - name: 'FreeBSD 13: full build'
> - << : *FREEBSD_13
> - << : *FREEBSD_FULL_BUILD_TEMPLATE
> -
> -task:
> - name: 'FreeBSD 14: full build'
> - << : *FREEBSD_14
> - << : *FREEBSD_FULL_BUILD_TEMPLATE
> -
> -task:
> - name: 'FreeBSD 15: full build'
> - << : *FREEBSD_15
> - << : *FREEBSD_FULL_BUILD_TEMPLATE
> -
> -task:
> - name: 'FreeBSD 13: randconfig'
> - << : *FREEBSD_13
> - << : *FREEBSD_RANDCONFIG_TEMPLATE
> -
> -task:
> - name: 'FreeBSD 14: randconfig'
> - << : *FREEBSD_14
> - << : *FREEBSD_RANDCONFIG_TEMPLATE
> -
> -task:
> - name: 'FreeBSD 15: randconfig'
> - << : *FREEBSD_15
> - << : *FREEBSD_RANDCONFIG_TEMPLATE
> --
> 2.48.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |