From b46000f076cc563ada1aa9963b7fec6176a2da3d Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 17 Mar 2022 16:35:30 +0100 Subject: [PATCH] ci: Allow specifying a different kernel in LAVA jobs To make it possible to use a kernel different from that built along with the rootfs. This can make it more convenient for other projects to reuse these scripts. Signed-off-by: Tomeu Vizoso Reviewed-by: Emma Anholt Part-of: --- .gitlab-ci/lava/lava-gitlab-ci.yml | 2 +- .gitlab-ci/lava/lava-submit.sh | 5 +++-- .gitlab-ci/lava/lava_job_submitter.py | 13 +++++++------ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci/lava/lava-gitlab-ci.yml b/.gitlab-ci/lava/lava-gitlab-ci.yml index d90d0be0456..6c9cd5652f7 100755 --- a/.gitlab-ci/lava/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava/lava-gitlab-ci.yml @@ -14,7 +14,7 @@ BASE_SYSTEM_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${DISTRIBUTION_TAG}/${ARCH}" BASE_SYSTEM_FORK_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${ARCH}" # per-job build artifacts - MESA_BUILD_PATH: "${PIPELINE_ARTIFACTS_BASE}/${CI_PROJECT_NAME}-${ARCH}.tar.gz" + BUILD_PATH: "${PIPELINE_ARTIFACTS_BASE}/${CI_PROJECT_NAME}-${ARCH}.tar.gz" JOB_ROOTFS_OVERLAY_PATH: "${JOB_ARTIFACTS_BASE}/job-rootfs-overlay.tar.gz" JOB_RESULTS_PATH: "${JOB_ARTIFACTS_BASE}/results.tar.gz" MINIO_RESULTS_UPLOAD: "${JOB_ARTIFACTS_BASE}" diff --git a/.gitlab-ci/lava/lava-submit.sh b/.gitlab-ci/lava/lava-submit.sh index 5ed3515bc77..a61665dee82 100755 --- a/.gitlab-ci/lava/lava-submit.sh +++ b/.gitlab-ci/lava/lava-submit.sh @@ -31,8 +31,9 @@ tail -f results/lava.log & artifacts/lava/lava_job_submitter.py \ --dump-yaml \ --pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \ - --base-system-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \ - --mesa-build-url "${FDO_HTTP_CACHE_URI:-}https://${MESA_BUILD_PATH}" \ + --rootfs-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \ + --kernel-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \ + --build-url "${FDO_HTTP_CACHE_URI:-}https://${BUILD_PATH}" \ --job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \ --job-timeout ${JOB_TIMEOUT:-30} \ --first-stage-init artifacts/ci-common/init-stage1.sh \ diff --git a/.gitlab-ci/lava/lava_job_submitter.py b/.gitlab-ci/lava/lava_job_submitter.py index d2b4a622779..0975a3a0d8d 100755 --- a/.gitlab-ci/lava/lava_job_submitter.py +++ b/.gitlab-ci/lava/lava_job_submitter.py @@ -93,10 +93,10 @@ def generate_lava_yaml(args): 'to': 'tftp', 'os': 'oe', 'kernel': { - 'url': '{}/{}'.format(args.base_system_url_prefix, args.kernel_image_name), + 'url': '{}/{}'.format(args.kernel_url_prefix, args.kernel_image_name), }, 'nfsrootfs': { - 'url': '{}/lava-rootfs.tgz'.format(args.base_system_url_prefix), + 'url': '{}/lava-rootfs.tgz'.format(args.rootfs_url_prefix), 'compression': 'gz', } } @@ -104,7 +104,7 @@ def generate_lava_yaml(args): deploy['kernel']['type'] = args.kernel_image_type if args.dtb: deploy['dtb'] = { - 'url': '{}/{}.dtb'.format(args.base_system_url_prefix, args.dtb) + 'url': '{}/{}.dtb'.format(args.kernel_url_prefix, args.dtb) } # always boot over NFS @@ -160,7 +160,7 @@ def generate_lava_yaml(args): init_lines += [ 'mkdir -p {}'.format(args.ci_project_dir), - 'wget -S --progress=dot:giga -O- {} | tar -xz -C {}'.format(args.mesa_build_url, args.ci_project_dir), + 'wget -S --progress=dot:giga -O- {} | tar -xz -C {}'.format(args.build_url, args.ci_project_dir), 'wget -S --progress=dot:giga -O- {} | tar -xz -C /'.format(args.job_rootfs_overlay_url), f'echo "export CI_JOB_JWT_FILE={args.jwt_file}" >> /set-job-env-vars.sh', 'exec /init-stage2.sh', @@ -346,8 +346,9 @@ def create_parser(): parser = argparse.ArgumentParser("LAVA job submitter") parser.add_argument("--pipeline-info") - parser.add_argument("--base-system-url-prefix") - parser.add_argument("--mesa-build-url") + parser.add_argument("--rootfs-url-prefix") + parser.add_argument("--kernel-url-prefix") + parser.add_argument("--build-url") parser.add_argument("--job-rootfs-overlay-url") parser.add_argument("--job-timeout", type=int) parser.add_argument("--first-stage-init")