[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 |