Commit 42f67e3b authored by Michał Kępień's avatar Michał Kępień
Browse files


The CUSTOM_ENV_CI_JOB_IMAGE variable contains the value of the "image"
key set for a given GitLab CI job.  Use that instead of the job name for
determining the QCOW2 image to use, so that defining GitLab CI jobs
using the libvirt/QEMU custom executor becomes a bit more similar in
spirit to defining jobs using the Docker executor.
parent be3f09fd
Pipeline #46344 passed with stage
in 7 seconds
......@@ -89,15 +89,6 @@ libvirt domains (over SSH).
redirects COM1 to a file which can be inspected on the host in case of
boot issues.
- [GitLab Runner Docker executor][3] uses the `image` keyword for
determining which Docker image to use. The contents of that keyword
are not exposed as an environment variable by the [GitLab Runner
Custom executor][4] and thus it cannot be used for determining the
operating system image to use. Instead, the latter is extracted from
the job name. The QCOW2 image file path is derived from the detected
operating system name and release (see the `do_prepare()` function in
`` for hints on expected file naming).
## QCOW2 Image Synchronization
Whenever [GitLab Runner Docker executor][3] runs a GitLab CI job, it
......@@ -18,10 +18,6 @@ CONFIG_PATH="/etc/gitlab-runner/executor-libvirt-qemu.conf"
# shellcheck source=executor.conf.sample
CENTOS_RELEASE="$(expr "${CUSTOM_ENV_CI_JOB_NAME}" : ".*:el\([6-8]\)\(:\|$\)" || :)"
OPENBSD_RELEASE="$(expr "${CUSTOM_ENV_CI_JOB_NAME}" : ".*:openbsd\([0-9][0-9.]*\)\(:\|$\)" || :)"
FREEBSD_RELEASE="$(expr "${CUSTOM_ENV_CI_JOB_NAME}" : ".*:freebsd\([0-9][0-9.]*\)\(:\|$\)" || :)"
......@@ -50,18 +46,9 @@ do_config() {
do_prepare() {
if [ -n "${CENTOS_RELEASE}" ]; then
BASE_IMAGE_PATH="$(readlink -f "${BASE_IMAGE_DIR}/centos-${CENTOS_RELEASE}-x86_64")"
elif [ -n "${FREEBSD_RELEASE}" ]; then
BASE_IMAGE_PATH="$(readlink -f "${BASE_IMAGE_DIR}/freebsd-${FREEBSD_RELEASE}-x86_64")"
elif [ -n "${OPENBSD_RELEASE}" ]; then
BASE_IMAGE_PATH="$(readlink -f "${BASE_IMAGE_DIR}/openbsd-${OPENBSD_RELEASE}-x86_64")"
fatal_error "Unable to extract OS to use from job name (${CUSTOM_ENV_CI_JOB_NAME})"
if [ ! -f "${BASE_IMAGE_PATH}" ]; then
fatal_error "Base image ${BASE_IMAGE_PATH} does not exist"
fatal_error "Base image ${CUSTOM_ENV_CI_JOB_IMAGE} does not exist"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment