diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2021-02-01 11:42:43 +0100 |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2021-04-07 13:34:14 +0200 |
commit | 93ec399b2850d879057d3de27f9a36ca268d3430 (patch) | |
tree | bb623fcebbae924507fa0e3ae7bf06f6123b2115 /.gitlab-ci | |
parent | 8926c4a313e409a6098846de605f99436c0f0255 (diff) |
ci: Use a single template for LAVA jobs
It's a pain to keep both templates in sync and there aren't really that
many differences.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9950>
Diffstat (limited to '.gitlab-ci')
-rw-r--r-- | .gitlab-ci/lava-deqp.yml.jinja2 | 113 | ||||
-rw-r--r-- | .gitlab-ci/lava-gitlab-ci.yml | 16 | ||||
-rw-r--r-- | .gitlab-ci/lava.yml.jinja2 (renamed from .gitlab-ci/lava-piglit.yml.jinja2) | 32 | ||||
-rwxr-xr-x | .gitlab-ci/prepare-artifacts.sh | 2 |
4 files changed, 33 insertions, 130 deletions
diff --git a/.gitlab-ci/lava-deqp.yml.jinja2 b/.gitlab-ci/lava-deqp.yml.jinja2 deleted file mode 100644 index cf0c55187ed..00000000000 --- a/.gitlab-ci/lava-deqp.yml.jinja2 +++ /dev/null @@ -1,113 +0,0 @@ -job_name: mesa-deqp-{{ deqp_version }}-{{ gpu_version }} {{ pipeline_info }} -device_type: {{ device_type }} -context: - extra_nfsroot_args: " init=/init rootwait" -timeouts: - job: - minutes: 40 - action: - minutes: 10 - actions: - power-off: - seconds: 30 -priority: 75 -visibility: - group: - - "Collabora+fdo" -{% if tags %} -{% set lavatags = tags.split(',') %} -tags: -{% for tag in lavatags %} - - {{ tag }} -{% endfor %} -{% endif %} -actions: -- deploy: - timeout: - minutes: 10 - to: tftp - kernel: - url: {{ base_artifacts_url }}/{{ kernel_image_name }} -{% if kernel_image_type %} - {{ kernel_image_type }} -{% endif %} - nfsrootfs: - url: {{ base_artifacts_url }}/lava-rootfs.tgz - compression: gz -{% if dtb %} - dtb: - url: {{ base_artifacts_url }}/{{ dtb }}.dtb -{% endif %} - os: oe -- boot: - timeout: - minutes: 5 - method: {{ boot_method }} -{% if boot_method == "fastboot" %} -{# - For fastboot, LAVA doesn't know how to unpack the rootfs/apply overlay/repack, - so we transfer the overlay over the network after boot. -#} - transfer_overlay: - download_command: wget -S --progress=dot:giga - unpack_command: tar -C / -xzf -{% else %} - commands: nfs -{% endif %} - prompts: - - 'lava-shell:' -- test: - timeout: - minutes: 60 - definitions: - - repository: - metadata: - format: Lava-Test Test Definition 1.0 - name: deqp - description: "Mesa dEQP test plan" - os: - - oe - scope: - - functional - run: - steps: - - mount -t proc none /proc - - mount -t sysfs none /sys - - mount -t devtmpfs none /dev || echo possibly already mounted - - mkdir -p /dev/pts - - mount -t devpts devpts /dev/pts - - echo "nameserver 8.8.8.8" > /etc/resolv.conf - - for i in 1 2 3; do sntp -sS pool.ntp.org && break || sleep 2; done - - - modprobe amdgpu || true - - - DEVFREQ_GOVERNOR=`find /sys/devices -name governor | grep gpu || true` - - echo performance > $DEVFREQ_GOVERNOR || true - - - GPU_AUTOSUSPEND=`find /sys/devices -name autosuspend_delay_ms | grep gpu | head -1` - - echo -1 > $GPU_AUTOSUSPEND || true - -{% if env_vars %} - - export {{ env_vars }} -{% endif %} - - # deqp-runner.sh assumes some stuff is in pwd - - cd / - - - wget -S --progress=dot:giga -O- {{ mesa_url }} | tar -xz - - - export DEQP_NO_SAVE_RESULTS=1 - - export GPU_VERSION={{ gpu_version }} - - export DEQP_VER={{ deqp_version }} - - export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri - - - "if sh /install/deqp-runner.sh; then - echo 'deqp: pass'; - else - echo 'deqp: fail'; - fi" - parse: - pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))' - from: inline - name: deqp - path: inline/mesa-deqp.yaml diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index 44ba8cb42d8..554f30d6451 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -51,7 +51,7 @@ kernel+rootfs_armhf: DISTRIBUTION_TAG: *distribution-tag-arm GIT_STRATEGY: none # testing doesn't build anything from source ENV_VARS: "DEQP_PARALLEL=6" - FIXED_ENV_VARS: "CI_PIPELINE_ID=${CI_PIPELINE_ID} CI_JOB_ID=${CI_JOB_ID} CI_PAGES_DOMAIN=${CI_PAGES_DOMAIN} CI_PROJECT_NAME=${CI_PROJECT_NAME} CI_PROJECT_PATH=${CI_PROJECT_PATH} CI_PROJECT_ROOT_NAMESPACE=${CI_PROJECT_ROOT_NAMESPACE} CI_JOB_JWT=${CI_JOB_JWT} CI_SERVER_URL=${CI_SERVER_URL} DRIVER_NAME=${DRIVER_NAME} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} PIGLIT_NO_WINDOW=1 PIGLIT_REPLAY_UPLOAD_TO_MINIO=1 MINIO_HOST=${MINIO_HOST}" + FIXED_ENV_VARS: "CI_PIPELINE_ID=${CI_PIPELINE_ID} CI_JOB_ID=${CI_JOB_ID} CI_PAGES_DOMAIN=${CI_PAGES_DOMAIN} CI_PROJECT_NAME=${CI_PROJECT_NAME} CI_PROJECT_PATH=${CI_PROJECT_PATH} CI_PROJECT_ROOT_NAMESPACE=${CI_PROJECT_ROOT_NAMESPACE} CI_JOB_JWT=${CI_JOB_JWT} CI_SERVER_URL=${CI_SERVER_URL} DRIVER_NAME=${DRIVER_NAME} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} PIGLIT_NO_WINDOW=1 PIGLIT_REPLAY_UPLOAD_TO_MINIO=1 MINIO_HOST=${MINIO_HOST} LAVA_TEST_SCRIPT=${LAVA_TEST_SCRIPT} TEST_SUITE=${TEST_SUITE}" DEQP_VERSION: gles2 ARTIFACTS_PREFIX: "https://${MINIO_HOST}/mesa-lava/" MESA_ROOTFS_TAG: *lava-rootfs @@ -66,7 +66,7 @@ kernel+rootfs_armhf: fi - > artifacts/generate_lava.py \ - --template artifacts/lava-${TEST_SUITE}.yml.jinja2 \ + --template artifacts/lava.yml.jinja2 \ --pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \ --base-artifacts-url ${ARTIFACTS_URL} \ --mesa-url ${MESA_URL} \ @@ -81,13 +81,13 @@ kernel+rootfs_armhf: --lava-tags "${LAVA_TAGS}" \ --ci-node-index "${CI_NODE_INDEX}" \ --ci-node-total "${CI_NODE_TOTAL}" - - lava_job_id=`lavacli jobs submit lava-${TEST_SUITE}.yml` || lavacli jobs submit lava-${TEST_SUITE}.yml + - lava_job_id=`lavacli jobs submit lava.yml` || lavacli jobs submit lava.yml - echo $lava_job_id - rm -rf artifacts/* - - cp lava-${TEST_SUITE}.yml artifacts/. - - lavacli jobs logs $lava_job_id | tee artifacts/lava-${TEST_SUITE}-$lava_job_id.log + - cp lava.yml artifacts/. + - lavacli jobs logs $lava_job_id | tee artifacts/lava-$lava_job_id.log - lavacli jobs show $lava_job_id - - result=`lavacli results $lava_job_id 0_${TEST_SUITE} ${TEST_SUITE} | head -1` + - result=`lavacli results $lava_job_id 0_mesa mesa | head -1` - echo $result - '[[ "$result" == "pass" ]]' artifacts: @@ -103,6 +103,7 @@ kernel+rootfs_armhf: KERNEL_IMAGE_TYPE: "type:\ zimage" BOOT_METHOD: u-boot TEST_SUITE: "deqp" + LAVA_TEST_SCRIPT: "/install/deqp-runner.sh" extends: - .lava-test - .use-arm_build @@ -117,6 +118,7 @@ kernel+rootfs_armhf: KERNEL_IMAGE_TYPE: "type:\ image" BOOT_METHOD: u-boot TEST_SUITE: "deqp" + LAVA_TEST_SCRIPT: "/install/deqp-runner.sh" extends: - .lava-test - .use-arm_build @@ -134,6 +136,7 @@ kernel+rootfs_armhf: KERNEL_IMAGE_TYPE: "type:\ zimage" BOOT_METHOD: u-boot TEST_SUITE: "deqp" + LAVA_TEST_SCRIPT: "/install/deqp-runner.sh" extends: - .use-x86_build-base # for same $MESA_BASE_TAG as in kernel+rootfs_amd64 - .use-arm_build # ARM because it must match the architecture of the runner @@ -154,6 +157,7 @@ kernel+rootfs_armhf: .lava-piglit: variables: TEST_SUITE: "piglit" + LAVA_TEST_SCRIPT: "/install/piglit/run.sh" .lava-piglit-traces:amd64: extends: diff --git a/.gitlab-ci/lava-piglit.yml.jinja2 b/.gitlab-ci/lava.yml.jinja2 index 07ad5a7bc4a..b0c81cd7d89 100644 --- a/.gitlab-ci/lava-piglit.yml.jinja2 +++ b/.gitlab-ci/lava.yml.jinja2 @@ -1,4 +1,4 @@ -job_name: mesa-piglit-{{ gpu_version }} {{ pipeline_info }} +job_name: mesa-{{ test_suite }}-{{ deqp_version }}-{{ gpu_version }} {{ pipeline_info }} device_type: {{ device_type }} context: extra_nfsroot_args: " init=/init rootwait" @@ -63,8 +63,8 @@ actions: - repository: metadata: format: Lava-Test Test Definition 1.0 - name: piglit - description: "Mesa piglit test plan" + name: mesa + description: "Mesa test plan" os: - oe scope: @@ -81,16 +81,26 @@ actions: - modprobe amdgpu || true + - DEVFREQ_GOVERNOR=`find /sys/devices -name governor | grep gpu || true` + - echo performance > $DEVFREQ_GOVERNOR || true + + - GPU_AUTOSUSPEND=`find /sys/devices -name autosuspend_delay_ms | grep gpu | head -1` + - echo -1 > $GPU_AUTOSUSPEND || true + {% if env_vars %} - export {{ env_vars }} {% endif %} - # piglit/run.sh assumes some stuff is in pwd + + # runner script assumes some stuff is in pwd - cd / - wget -S --progress=dot:giga -O- {{ mesa_url }} | tar -xz + - export DEQP_NO_SAVE_RESULTS=1 + - export GPU_VERSION={{ gpu_version }} + - export DEQP_VER={{ deqp_version }} + - export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))") - - export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri - export PIGLIT_REPLAY_EXTRA_ARGS="--keep-image" - export PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL="/mesa-tracie-results/${CI_PROJECT_PATH}" - export PIGLIT_REPLAY_ARTIFACTS_BASE_URL="/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}/${CI_JOB_ID}" @@ -98,13 +108,15 @@ actions: - export PIGLIT_REPLAY_DEVICE_NAME=gl-{{ gpu_version }} - export PIGLIT_RESULTS={{ gpu_version }}-${PIGLIT_PROFILES} - - "if sh /install/piglit/run.sh; then - echo 'piglit: pass'; + - export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri + + - "if sh $LAVA_TEST_SCRIPT; then + echo 'mesa: pass'; else - echo 'piglit: fail'; + echo 'mesa: fail'; fi" parse: pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))' from: inline - name: piglit - path: inline/mesa-piglit.yaml + name: mesa + path: inline/mesa.yaml diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh index b77893810b6..4c612127e7f 100755 --- a/.gitlab-ci/prepare-artifacts.sh +++ b/.gitlab-ci/prepare-artifacts.sh @@ -44,7 +44,7 @@ tar -cf artifacts/install.tar install if [ -n "$MINIO_ARTIFACT_NAME" ]; then # Pass needed files to the test stage cp $CI_PROJECT_DIR/.gitlab-ci/generate_lava.py artifacts/. - cp $CI_PROJECT_DIR/.gitlab-ci/lava-*.yml.jinja2 artifacts/. + cp $CI_PROJECT_DIR/.gitlab-ci/lava.yml.jinja2 artifacts/. MINIO_ARTIFACT_NAME="$MINIO_ARTIFACT_NAME.tar.gz" gzip -c artifacts/install.tar > ${MINIO_ARTIFACT_NAME} |