Message ID | 20250320152020.88526-2-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | automation/cirrus-ci: add smoke tests of the FreeBSD builds | expand |
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@citrix.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > 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 >
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
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@citrix.com> --- 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(-)