Browse Source

Move all tests into test_acceptance stage and use pre-converted image.

This also means using the new mender-gitlab-tmp-storage bucket to
transfer artifacts between stages, because the built in artifact
mechanism has a size cap that we are exceeding.

Changelog: None

Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech>
2.0.x
Kristian Amlie 5 years ago
parent
commit
0903a31e78
No known key found for this signature in database GPG Key ID: F464407C996AF03F
  1. 50
      .gitlab-ci.yml
  2. 15
      scripts/test/run-tests.sh

50
.gitlab-ci.yml

@ -8,6 +8,8 @@ variables:
RASPBIAN_URL: http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-09-30/2019-09-26-raspbian-buster-lite.zip RASPBIAN_URL: http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-09-30/2019-09-26-raspbian-buster-lite.zip
RASPBIAN_NAME: 2019-09-26-raspbian-buster-lite RASPBIAN_NAME: 2019-09-26-raspbian-buster-lite
DEBIAN_FRONTEND: noninteractive
include: include:
- project: 'Northern.tech/Mender/mendertesting' - project: 'Northern.tech/Mender/mendertesting'
file: '.gitlab-ci-check-commits.yml' file: '.gitlab-ci-check-commits.yml'
@ -17,8 +19,8 @@ include:
stages: stages:
- test - test
- build - build
- test_acceptance
- convert - convert
- test_acceptance
- publish - publish
build: build:
@ -35,25 +37,30 @@ build:
test_acceptance: test_acceptance:
stage: test_acceptance stage: test_acceptance
image: docker:18-dind image: teracy/ubuntu:18.04-dind-18.09.9
services:
- docker:18-dind
tags: tags:
- mender-qa-slave - mender-qa-slave
dependencies: dependencies:
- build - build
- convert_raspbian
before_script: 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 # Install dependencies
- apk --update --no-cache add bash wget git util-linux mtools python3 py3-pip - apt update
gcc python3-dev libffi-dev lzo-dev libc-dev openssl-dev make sudo - apt install -qyy bash wget git util-linux mtools python3 python3-pip
gcc python3-dev libffi-dev liblzo2-dev libc-dev libssl-dev make sudo
awscli unzip
# Python3 dependencies # Python3 dependencies
- pip3 install -r https://raw.githubusercontent.com/mendersoftware/meta-mender/master/tests/acceptance/requirements_py3.txt - pip3 install -r https://raw.githubusercontent.com/mendersoftware/meta-mender/master/tests/acceptance/requirements_py3.txt
# Load image under test # Load image under test
- export IMAGE_NAME=$DOCKER_REPOSITORY:pr - export IMAGE_NAME=$DOCKER_REPOSITORY:pr
- docker load -i image.tar - docker load -i image.tar
# Fetch artifacts from temporary S3 bucket
- aws s3 cp s3://mender-gitlab-tmp-storage/$CI_PROJECT_NAME/$CI_PIPELINE_ID/deploy.tar.gz deploy.tar.gz
- tar xzf deploy.tar.gz
# Extract converted Raspbian artifacts
- unxz deploy/raspberrypi-mender-raspbian.sdimg.xz
script: script:
- ./scripts/test/run-tests.sh - ./scripts/test/run-tests.sh
artifacts: artifacts:
@ -75,7 +82,7 @@ convert_raspbian:
dependencies: dependencies:
- build - build
before_script: before_script:
- apt update && apt install -yy bash wget unzip - apt update && apt install -yy bash wget unzip awscli
- export IMAGE_NAME=$DOCKER_REPOSITORY:pr - export IMAGE_NAME=$DOCKER_REPOSITORY:pr
- docker load -i image.tar - docker load -i image.tar
@ -90,20 +97,10 @@ convert_raspbian:
-c configs/raspberrypi3_config -c configs/raspberrypi3_config
-c configs/images/raspberrypi3_raspbian_config -c configs/images/raspberrypi3_raspbian_config
-c mender_client_version_config -c mender_client_version_config
- cp deploy/raspberrypi-mender-raspbian.sdimg.xz deploy/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz
- unxz deploy/raspberrypi-mender-raspbian.sdimg.xz
# Verify converted image
- . ./scripts/test/test-utils.sh
- run_tests raspbian mender-raspbian "-k TestMenderInstalled"
after_script:
- mkdir -p output
- mv deploy/*.img.xz output
artifacts: # Upload to temporary S3 bucket
paths: - tar czf deploy.tar.gz deploy
- output - aws s3 cp deploy.tar.gz s3://mender-gitlab-tmp-storage/$CI_PROJECT_NAME/$CI_PIPELINE_ID/deploy.tar.gz
expire_in: 2 weeks
publish:s3: publish:s3:
when: manual when: manual
@ -111,9 +108,14 @@ publish:s3:
image: debian:buster image: debian:buster
before_script: before_script:
- apt update && apt install -yyq awscli - apt update && apt install -yyq awscli
# Fetch artifacts from temporary S3 bucket
- aws s3 cp s3://mender-gitlab-tmp-storage/$CI_PROJECT_NAME/$CI_PIPELINE_ID/deploy.tar.gz deploy.tar.gz
- tar xzf deploy.tar.gz
script: script:
- echo "Publishing ${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz version to S3" - echo "Publishing ${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz version to S3"
- aws s3 cp output/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz - aws s3 cp deploy/raspberrypi-mender-raspbian.sdimg.xz
s3://$S3_BUCKET_NAME/${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz s3://$S3_BUCKET_NAME/${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz
- aws s3api put-object-acl --acl public-read --bucket $S3_BUCKET_NAME - aws s3api put-object-acl --acl public-read --bucket $S3_BUCKET_NAME
--key ${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz --key ${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz

15
scripts/test/run-tests.sh

@ -13,9 +13,6 @@ WORKSPACE=./tests
BBB_DEBIAN_IMAGE="bone-debian-9.5-iot-armhf-2018-10-07-4gb.img" BBB_DEBIAN_IMAGE="bone-debian-9.5-iot-armhf-2018-10-07-4gb.img"
BBB_DEBIAN_IMAGE_URL="http://debian.beagleboard.org/images/${BBB_DEBIAN_IMAGE}.xz" BBB_DEBIAN_IMAGE_URL="http://debian.beagleboard.org/images/${BBB_DEBIAN_IMAGE}.xz"
RASPBIAN_IMAGE="2019-04-08-raspbian-stretch-lite"
RASPBIAN_IMAGE_URL="https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-04-09/${RASPBIAN_IMAGE}.zip"
TINKER_IMAGE="20170417-tinker-board-linaro-stretch-alip-v1.8" TINKER_IMAGE="20170417-tinker-board-linaro-stretch-alip-v1.8"
TINKER_IMAGE_URL="http://dlcdnet.asus.com/pub/ASUS/mb/Linux/Tinker_Board_2GB/${TINKER_IMAGE}.zip" TINKER_IMAGE_URL="http://dlcdnet.asus.com/pub/ASUS/mb/Linux/Tinker_Board_2GB/${TINKER_IMAGE}.zip"
@ -53,12 +50,12 @@ convert_and_test "qemux86_64" \
"${UBUNTU_IMAGE}.gz" \ "${UBUNTU_IMAGE}.gz" \
"configs/qemux86-64_config" || test_result=$? "configs/qemux86-64_config" || test_result=$?
convert_and_test "raspberrypi" \ if [ -f deploy/raspberrypi-mender-raspbian.sdimg ]; then
"release-1" \ run_tests "raspberrypi" "mender-raspbian" || test_result=$?
"${RASPBIAN_IMAGE_URL}" \ else
"${RASPBIAN_IMAGE}.img" \ echo "FAILED! This test needs a pre-converted Raspbian image. See the convert_raspbian job in the .gitlab-ci.yml file for how to generate, and then put the *uncompressed* image in the deploy folder"
"${RASPBIAN_IMAGE}.zip" \ test_result=1
"configs/raspberrypi3_config" || test_result=$? fi
# MEN-2809: Disabled due broken download link # MEN-2809: Disabled due broken download link
#convert_and_test "linaro-alip" \ #convert_and_test "linaro-alip" \

Loading…
Cancel
Save