diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 478b1b3..5c6a5e1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,7 @@ variables: stages: - test - build + - test_acceptance test: stage: test @@ -39,3 +40,31 @@ build: paths: - image.tar +test_acceptance: + stage: test_acceptance + image: docker:18-dind + tags: + - mender-qa-slave + dependencies: + - build + before_script: + # Start up Docker (DonD) + - /usr/local/bin/dockerd-entrypoint.sh & + - sleep 10 + - export DOCKER_HOST="unix:///var/run/docker.sock" + - docker version + # Install dependencies + - apk --update --no-cache add bash wget git util-linux mtools python + py-pip gcc python2-dev libffi-dev libc-dev openssl-dev make + - pip install "pytest>=3.0" "Fabric>=1.13.0, <2" pytest-html + # Load image under test + - export IMAGE_NAME=$DOCKER_REPOSITORY:pr + - docker load -i image.tar + script: + - ./scripts/run-tests.sh + artifacts: + expire_in: 2w + when: always + paths: + - results_*.xml + - report_*.html diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 3828835..e1bbdda 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -75,10 +75,15 @@ convert_and_test() { --disk-image input/${image_name} \ --config ${WORKSPACE}/test_config + if pip list | grep -q -e pytest-html; then + html_report_args="--html=${MENDER_CONVERT_DIR}/report_${device_type}.html --self-contained-html" + fi + cd ${WORKSPACE}/mender-image-tests python2 -m pytest --verbose \ - --junit-xml="${WORKSPACE}/results.xml" \ + --junit-xml="${MENDER_CONVERT_DIR}/results_${device_type}.xml" \ + ${html_report_args} \ --test-conversion \ --test-variables="${MENDER_CONVERT_DIR}/deploy/${device_type}-${artifact_name}.cfg" \ --board-type="${device_type}" \ @@ -107,8 +112,6 @@ mkdir -p ${WORKSPACE} get_pytest_files -./docker-build - convert_and_test "qemux86_64" \ "release-1" \ "${UBUNTU_IMAGE_URL}" \