ci: Regenerate with latest 'lcitool' and fix manual job definitions

The latest lcitool merged the 'prebuilt-env' and 'local-env' jobs into
one which use variables to pick up the right environment and steps
rather than duplicating everything.

Regenerate the generated job definitions, fix the helper definitions
and also fix the manually defined jobs (website-job).

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Peter Krempa 2024-01-18 16:20:14 +01:00
parent 8581ec7e68
commit 7a1285216b
5 changed files with 253 additions and 806 deletions

View File

@ -20,6 +20,7 @@ include:
- '/ci/integration.yml'
.native_build_job:
extends: .gitlab_native_build_job
cache:
paths:
- ccache/
@ -40,17 +41,8 @@ include:
mv "$HOME"/rpmbuild/RPMS/x86_64/ libvirt-rpms/;
fi
.native_build_job_prebuilt_env:
extends:
- .native_build_job
- .gitlab_native_build_job_prebuilt_env
.native_build_job_local_env:
extends:
- .native_build_job
- .gitlab_native_build_job_local_env
.cross_build_job:
extends: .gitlab_cross_build_job
cache:
paths:
- ccache/
@ -68,21 +60,14 @@ include:
fi;
fi
.cross_build_job_prebuilt_env:
extends:
- .cross_build_job
- .gitlab_cross_build_job_prebuilt_env
.cross_build_job_local_env:
extends:
- .cross_build_job
- .gitlab_cross_build_job_local_env
# This artifact published by this job is downloaded by libvirt.org to
# be deployed to the web root:
# https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=website
.website_job:
website_job:
extends: .gitlab_native_build_job
needs:
- job: x86_64-almalinux-8-container
optional: true
script:
- source ci/jobs.sh
- run_website_build
@ -96,50 +81,21 @@ include:
expire_in: 30 days
paths:
- website
website_prebuilt_env:
extends:
- .website_job
- .gitlab_native_build_job_prebuilt_env
needs:
- job: x86_64-almalinux-8-container
optional: true
variables:
NAME: almalinux-8
website_local_env:
extends:
- .website_job
- .gitlab_native_build_job_local_env
variables:
IMAGE: docker.io/library/almalinux:8
NAME: almalinux-8
TARGET_BASE_IMAGE: docker.io/library/almalinux:8
.codestyle_job:
stage: sanity_checks
script:
- source ci/jobs.sh
- run_codestyle
codestyle_prebuilt_env:
extends:
- .codestyle_job
- .gitlab_native_build_job_prebuilt_env
needs:
- job: x86_64-opensuse-leap-15-container
optional: true
script:
- source ci/jobs.sh
- run_codestyle
variables:
NAME: opensuse-leap-15
codestyle_local_env:
extends:
- .codestyle_job
- .gitlab_native_build_job_local_env
variables:
IMAGE: registry.opensuse.org/opensuse/leap:15.4
NAME: opensuse-leap-15
TARGET_BASE_IMAGE: registry.opensuse.org/opensuse/leap:15.5
# This artifact published by this job is downloaded to push to Weblate
# for translation usage:

View File

@ -20,16 +20,25 @@
# include CI changes
# - Validating code committed to a fork branch
#
# Note: the rules across the prebuilt_env and local_env templates
# Note: the rules across the prebuilt and local container scenarios
# should be logical inverses, such that jobs are mutually exclusive
#
.gitlab_native_build_job_prebuilt_env:
image: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libvirt/ci-$NAME:latest
.gitlab_native_build_job:
image: $IMAGE
stage: builds
interruptible: true
before_script:
- if test "$IMAGE" == "$TARGET_BASE_IMAGE" ;
then
source ci/buildenv/$NAME.sh ;
install_buildenv ;
fi
- cat /packages.txt
variables:
IMAGE: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libvirt/ci-$NAME:latest
rules:
### Rules where we expect to use pre-built container images
# upstream: pushes to the default branch
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
@ -63,49 +72,41 @@
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
when: on_success
# upstream+forks: that's all folks
- when: never
.gitlab_native_build_job_local_env:
image: $IMAGE
stage: builds
interruptible: true
before_script:
- source ci/buildenv/$NAME.sh
- install_buildenv
- cat /packages.txt
rules:
# upstream: pushes to a non-default branch
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
allow_failure: true
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
when: on_success
# forks: avoid build in local env when job requests run in upstream containers
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE_UPSTREAM_ENV'
when: never
### Rules where we need to use the target base container image
# forks: pushes to branches with pipeline requested
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# upstream: other web/api/scheduled pipelines targeting non-default branches
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/ && $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/ && $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# forks: other web/api/scheduled pipelines
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/ && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# upstream+forks: merge requests targeting the default branch, with CI changes
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
@ -114,18 +115,28 @@
- ci/containers/$NAME.Dockerfile
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
changes:
- ci/gitlab/container-templates.yml
- ci/containers/$NAME.Dockerfile
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# upstream+forks: merge requests targeting non-default branches
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
### Neither prebuilt or local container images
# upstream+forks: that's all folks
- when: never
@ -146,16 +157,25 @@
# include CI changes
# - Validating code committed to a fork branch
#
# Note: the rules across the prebuilt_env and local_env templates
# Note: the rules across the prebuilt and local container scenarios
# should be logical inverses, such that jobs are mutually exclusive
#
.gitlab_cross_build_job_prebuilt_env:
image: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libvirt/ci-$NAME-cross-$CROSS:latest
.gitlab_cross_build_job:
image: $IMAGE
stage: builds
interruptible: true
before_script:
- if test "$IMAGE" == "$TARGET_BASE_IMAGE" ;
then
source ci/buildenv/$NAME-cross-$CROSS.sh ;
install_buildenv ;
fi
- cat /packages.txt
variables:
IMAGE: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libvirt/ci-$NAME-cross-$CROSS:latest
rules:
### Rules where we expect to use pre-built container images
# upstream: pushes to the default branch
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
@ -189,49 +209,41 @@
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
when: on_success
# upstream+forks: that's all folks
- when: never
.gitlab_cross_build_job_local_env:
image: $IMAGE
stage: builds
interruptible: true
before_script:
- source ci/buildenv/$NAME-cross-$CROSS.sh
- install_buildenv
- cat /packages.txt
rules:
# upstream: pushes to a non-default branch
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
allow_failure: true
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
when: on_success
# forks: avoid build in local env when job requests run in upstream containers
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE_UPSTREAM_ENV'
when: never
### Rules where we need to use the target base container image
# forks: pushes to branches with pipeline requested
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# upstream: other web/api/scheduled pipelines targeting non-default branches
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/ && $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/ && $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# forks: other web/api/scheduled pipelines
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/ && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE =~ /(web|api|schedule)/'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# upstream+forks: merge requests targeting the default branch, with CI changes
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
@ -240,18 +252,28 @@
- ci/containers/$NAME-cross-$CROSS.Dockerfile
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
changes:
- ci/gitlab/container-templates.yml
- ci/containers/$NAME-cross-$CROSS.Dockerfile
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
# upstream+forks: merge requests targeting non-default branches
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH && $JOB_OPTIONAL'
when: manual
allow_failure: true
variables:
IMAGE: $TARGET_BASE_IMAGE
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH'
when: on_success
variables:
IMAGE: $TARGET_BASE_IMAGE
### Neither prebuilt or local container images
# upstream+forks: that's all folks
- when: never

File diff suppressed because it is too large Load Diff

View File

@ -47,6 +47,10 @@
.integration_tests:
stage: integration_tests
rules:
- if: '$LIBVIRT_CI_INTEGRATION == null'
when: never
- !reference [.gitlab_native_build_job, rules]
before_script:
- mkdir "$SCRATCH_DIR"
- sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/* libvirt-python-rpms/*
@ -65,35 +69,13 @@
- logs
when: on_failure
.integration_tests_prebuilt_env:
extends: .integration_tests
rules:
- if: '$LIBVIRT_CI_INTEGRATION == null'
when: never
- !reference [.gitlab_native_build_job_prebuilt_env, rules]
.integration_tests_local_env:
extends: .integration_tests
rules:
- if: '$LIBVIRT_CI_INTEGRATION == null'
when: never
- !reference [.gitlab_native_build_job_local_env, rules]
# YAML anchors don't work with Shell conditions so we can't use a variable
# to conditionally build+install QEMU from source.
# Instead, create a new test job template for this scenario.
.integration_tests_upstream_qemu:
extends:
- .integration_tests
before_script:
- !reference [.integration_tests, before_script]
- *qemu-build-template
.integration_tests_upstream_qemu_prebuilt_env:
extends:
- .integration_tests_prebuilt_env
- .integration_tests_upstream_qemu
.integration_tests_upstream_qemu_local_env:
extends:
- .integration_tests_local_env
- .integration_tests_upstream_qemu

View File

@ -5,7 +5,8 @@ include:
# and libvirt-python CI jobs, so the new target needs to be introduced
# there before it can be used here. The VM template for the target
# also needs to be created on the runner host.
.centos-stream-8-tests:
centos-stream-8-tests:
extends: .integration_tests
variables:
# needed by libvirt-gitlab-executor
DISTRO: centos-stream-8
@ -13,43 +14,23 @@ include:
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
centos-stream-8-tests-prebuilt-env:
extends:
- .integration_tests_prebuilt_env
- .centos-stream-8-tests
needs:
- x86_64-centos-stream-8-prebuilt-env
- x86_64-centos-stream-8
- project: libvirt/libvirt-perl
job: x86_64-centos-stream-8-prebuilt-env
job: x86_64-centos-stream-8
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-centos-stream-8-prebuilt-env
job: x86_64-centos-stream-8
ref: master
artifacts: true
centos-stream-8-tests-local-env:
extends:
- .integration_tests_local_env
- .centos-stream-8-tests
needs:
- x86_64-centos-stream-8-local-env
- project: libvirt/libvirt-perl
job: x86_64-centos-stream-8-prebuilt-env
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-centos-stream-8-prebuilt-env
ref: master
artifacts: true
# NOTE The integration tests use artifacts produced by the libvirt-perl
# and libvirt-python CI jobs, so the new target needs to be introduced
# there before it can be used here. The VM template for the target
# also needs to be created on the runner host.
.centos-stream-9-tests:
centos-stream-9-tests:
extends: .integration_tests
variables:
# needed by libvirt-gitlab-executor
DISTRO: centos-stream-9
@ -57,43 +38,23 @@ centos-stream-8-tests-local-env:
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
centos-stream-9-tests-prebuilt-env:
extends:
- .integration_tests_prebuilt_env
- .centos-stream-9-tests
needs:
- x86_64-centos-stream-9-prebuilt-env
- x86_64-centos-stream-9
- project: libvirt/libvirt-perl
job: x86_64-centos-stream-9-prebuilt-env
job: x86_64-centos-stream-9
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-centos-stream-9-prebuilt-env
job: x86_64-centos-stream-9
ref: master
artifacts: true
centos-stream-9-tests-local-env:
extends:
- .integration_tests_local_env
- .centos-stream-9-tests
needs:
- x86_64-centos-stream-9-local-env
- project: libvirt/libvirt-perl
job: x86_64-centos-stream-9-prebuilt-env
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-centos-stream-9-prebuilt-env
ref: master
artifacts: true
# NOTE The integration tests use artifacts produced by the libvirt-perl
# and libvirt-python CI jobs, so the new target needs to be introduced
# there before it can be used here. The VM template for the target
# also needs to be created on the runner host.
.fedora-38-tests:
fedora-38-tests:
extends: .integration_tests
variables:
# needed by libvirt-gitlab-executor
DISTRO: fedora-38
@ -101,43 +62,23 @@ centos-stream-9-tests-local-env:
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-38-tests-prebuilt-env:
extends:
- .integration_tests_prebuilt_env
- .fedora-38-tests
needs:
- x86_64-fedora-38-prebuilt-env
- x86_64-fedora-38
- project: libvirt/libvirt-perl
job: x86_64-fedora-38-prebuilt-env
job: x86_64-fedora-38
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-fedora-38-prebuilt-env
job: x86_64-fedora-38
ref: master
artifacts: true
fedora-38-tests-local-env:
extends:
- .integration_tests_local_env
- .fedora-38-tests
needs:
- x86_64-fedora-38-local-env
- project: libvirt/libvirt-perl
job: x86_64-fedora-38-prebuilt-env
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-fedora-38-prebuilt-env
ref: master
artifacts: true
# NOTE The integration tests use artifacts produced by the libvirt-perl
# and libvirt-python CI jobs, so the new target needs to be introduced
# there before it can be used here. The VM template for the target
# also needs to be created on the runner host.
.fedora-39-tests:
fedora-39-tests:
extends: .integration_tests
variables:
# needed by libvirt-gitlab-executor
DISTRO: fedora-39
@ -145,43 +86,23 @@ fedora-38-tests-local-env:
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-39-tests-prebuilt-env:
extends:
- .integration_tests_prebuilt_env
- .fedora-39-tests
needs:
- x86_64-fedora-39-prebuilt-env
- x86_64-fedora-39
- project: libvirt/libvirt-perl
job: x86_64-fedora-39-prebuilt-env
job: x86_64-fedora-39
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-fedora-39-prebuilt-env
job: x86_64-fedora-39
ref: master
artifacts: true
fedora-39-tests-local-env:
extends:
- .integration_tests_local_env
- .fedora-39-tests
needs:
- x86_64-fedora-39-local-env
- project: libvirt/libvirt-perl
job: x86_64-fedora-39-prebuilt-env
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-fedora-39-prebuilt-env
ref: master
artifacts: true
# NOTE The integration tests use artifacts produced by the libvirt-perl
# and libvirt-python CI jobs, so the new target needs to be introduced
# there before it can be used here. The VM template for the target
# also needs to be created on the runner host.
.fedora-39-upstream-qemu-tests:
extends: .integration_tests
variables:
# needed by libvirt-gitlab-executor
DISTRO: fedora-39
@ -189,33 +110,13 @@ fedora-39-tests-local-env:
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-39-upstream-qemu-tests-prebuilt-env:
extends:
- .integration_tests_upstream_qemu_prebuilt_env
- .fedora-39-upstream-qemu-tests
needs:
- x86_64-fedora-39-prebuilt-env
- x86_64-fedora-39
- project: libvirt/libvirt-perl
job: x86_64-fedora-39-prebuilt-env
job: x86_64-fedora-39
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-fedora-39-prebuilt-env
ref: master
artifacts: true
fedora-39-upstream-qemu-tests-local-env:
extends:
- .integration_tests_upstream_qemu_local_env
- .fedora-39-upstream-qemu-tests
needs:
- x86_64-fedora-39-local-env
- project: libvirt/libvirt-perl
job: x86_64-fedora-39-prebuilt-env
ref: master
artifacts: true
- project: libvirt/libvirt-python
job: x86_64-fedora-39-prebuilt-env
job: x86_64-fedora-39
ref: master
artifacts: true