Commit d6877bb6 authored by Michał Kępień's avatar Michał Kępień

Use CUSTOM_ENV_CI_JOB_IMAGE

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
determinining the QCOW2 image to use.
parent be3f09fd
Pipeline #46257 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
`executor.sh` 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
. "${CONFIG_PATH}"
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.]*\)\(:\|$\)" || :)"
BASE_IMAGE_DIR="${BASE_DIR}/qcow2"
RUNNER_NAME="runner-${CUSTOM_ENV_CI_JOB_ID}"
DOMAIN_DEFINITION_PATH="${BASE_DIR}/${RUNNER_NAME}.xml"
......@@ -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")"
else
fatal_error "Unable to extract OS to use from job name (${CUSTOM_ENV_CI_JOB_NAME})"
fi
BASE_IMAGE_PATH="$(readlink -f "${BASE_IMAGE_DIR}/${CUSTOM_ENV_CI_JOB_IMAGE}")"
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"
fi
cp "${DOMAIN_DEFINITION_TEMPLATE_PATH}" "${DOMAIN_DEFINITION_PATH}"
......
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