Browse Source

Merge pull request #159 from oleorhagen/MEN-3063

Men 3063
2.0.x
oleorhagen 5 years ago
committed by GitHub
parent
commit
0350ab9777
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      .gitlab-ci.yml
  2. 3
      configs/mender_convert_config
  3. 11
      mender-convert-package
  4. 42
      scripts/test/test-utils.sh

8
.gitlab-ci.yml

@ -76,8 +76,8 @@ test_acceptance_prebuilt_raspberrypi:
- 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/raspberrypi3-${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}-mender.img.xz
- ./scripts/test/run-tests.sh --no-pull --prebuilt-image raspberrypi3 ${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}
- unxz deploy/${RASPBIAN_NAME}-raspberrypi3-mender.img.xz
- ./scripts/test/run-tests.sh --no-pull --prebuilt-image raspberrypi ${RASPBIAN_NAME}-raspberrypi3-mender
test_acceptance_qemux86_64:
<<: *test_acceptance
@ -148,12 +148,12 @@ publish:s3:
- export AWS_ACCESS_KEY_ID=$PUBLISH_AWS_ACCESS_KEY_ID
- export AWS_SECRET_ACCESS_KEY=$PUBLISH_AWS_SECRET_ACCESS_KEY
- echo "Publishing ${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz version to S3"
- aws s3 cp deploy/raspberrypi3-${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}-mender.img.xz
- aws s3 cp deploy/${RASPBIAN_NAME}-raspberrypi3-mender.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
--key ${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.img.xz
- echo "Publishing ${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.mender version to S3"
- aws s3 cp deploy/raspberrypi3-${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.mender
- aws s3 cp deploy/${RASPBIAN_NAME}-raspberrypi3--mender.mender
s3://$S3_BUCKET_NAME/${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.mender
- aws s3api put-object-acl --acl public-read --bucket $S3_BUCKET_NAME
--key ${RASPBIAN_NAME}/arm/${RASPBIAN_NAME}-mender-${MENDER_CLIENT_VERSION}.mender

3
configs/mender_convert_config

@ -180,8 +180,9 @@ source configs/mender_grub_config
mender_create_artifact() {
local -r device_type="${1}"
local -r artifact_name="${2}"
local -r image_name="${3}"
mender_artifact=deploy/${device_type}-${artifact_name}.mender
mender_artifact=deploy/${image_name}.mender
log_info "Writing Mender artifact to: ${mender_artifact}"
log_info "This can take up to 20 minutes depending on which compression method is used"

11
mender-convert-package

@ -138,7 +138,12 @@ rootfs_part_sectors=$(disk_align_sectors ${rootfs_part_sectors} ${MENDER_PARTITI
device_type=$(cat work/rootfs/data/mender/device_type | sed 's/[^=]*=//')
artifact_name=$(cat work/rootfs/etc/mender/artifact_info | sed 's/[^=]*=//')
image_name="${device_type}-${artifact_name}"
# Get the name from the input disk_image
temp_img_name=$(basename "$disk_image")
# Strip the image suffix from temp_img_name and set the original image name as
# the output image name
image_name="${temp_img_name%.*}-${device_type}-mender"
actual_rootfs_size=$(sudo du -s --block-size=512 work/rootfs | cut -f 1)
@ -190,11 +195,11 @@ disk_create_file_system_from_folder "work/rootfs/" "work/rootfs.img" \
log_info "Copying root filesystem image to deploy directory"
run_and_log_cmd "cp --sparse=always work/rootfs.img deploy/${image_name}.${image_fs_type}"
mender_create_artifact "${device_type}" "${artifact_name}"
mender_create_artifact "${device_type}" "${artifact_name}" "${image_name}"
log_info "Creating Mender compatible disk-image"
img_path=deploy/${image_name}-mender.img
img_path="deploy/${image_name}.img"
log_info "Total disk size: $(disk_sectors_to_mb ${disk_image_total_sectors}) MiB"
log_info " Boot partition $(disk_sectors_to_mb ${boot_part_sectors}) MiB"

42
scripts/test/test-utils.sh

@ -8,27 +8,27 @@ convert_and_test() {
device_type=$1
artifact_name=$2
image_url=$3
image_name=$4
image_name_compressed=$5
image_file=$4
image_file_compressed=$5
config=$6 # Optional
wget --progress=dot:giga -N ${image_url} -P input/
echo "Extracting: ${image_name_compressed}"
case "${image_name_compressed}" in
echo "Extracting: ${image_file_compressed}"
case "${image_file_compressed}" in
*.gz)
gunzip -f input/${image_name_compressed}
gunzip -f input/${image_file_compressed}
;;
*.zip)
cd input
unzip -o ${image_name_compressed}
unzip -o ${image_file_compressed}
cd -
;;
*.xz)
xz -d -f input/${image_name_compressed}
xz -d -f input/${image_file_compressed}
;;
*)
echo "Unknown image type: ${image_name_compressed}"
echo "Unknown image type: ${image_file_compressed}"
exit 1
;;
esac
@ -53,20 +53,24 @@ convert_and_test() {
fi
MENDER_ARTIFACT_NAME=${artifact_name} ./docker-mender-convert \
--disk-image input/${image_name} \
--disk-image input/${image_file} \
${MENDER_CONVERT_EXTRA_ARGS}
local ret=0
run_tests "${device_type}" "${artifact_name}" || ret=$?
rm -f deploy/${device_type}-${artifact_name}*
# The output image name after conversion
image_name="${image_file%.img}-${device_type}-mender"
run_tests "${device_type}" "$image_name" || ret=$?
rm -f deploy/${image_file}*
return $ret
}
run_tests() {
device_type=$1
artifact_name=$2
converted_image_name=$2
shift 2
pytest_args_extra=$@
@ -76,30 +80,34 @@ run_tests() {
# Need to decompress images built with MENDER_COMPRESS_DISK_IMAGE=gzip before
# running tests.
if [ -f deploy/${device_type}-${artifact_name}-mender.img.gz ]; then
if [ -f "deploy/${converted_image_name}.img.gz" ]; then
# sudo is needed because the image is created using docker-mender-convert
# which sets root permissions on the image
sudo gunzip --force deploy/${device_type}-${artifact_name}-mender.img.gz
sudo gunzip --force "deploy/${converted_image_name}.img.gz"
fi
# MEN-3051: Rename the files back to .sdimg, as the sdimg extension has meaning
# in the test-infrastructure.
for file in ${MENDER_CONVERT_DIR}/deploy/*.img; do
mv $file "${file%-mender.img}.sdimg"
mv $file "${file%.img}.sdimg"
done
cd ${WORKSPACE}/mender-image-tests
echo "Converted image name: "
echo "$converted_image_name"
python3 -m pytest --verbose \
--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" \
--test-variables="${MENDER_CONVERT_DIR}/deploy/${converted_image_name}.cfg" \
--board-type="${device_type}" \
--mender-image=${device_type}-${artifact_name}.sdimg \
--mender-image="${converted_image_name}.sdimg" \
--sdimg-location="${MENDER_CONVERT_DIR}/deploy" \
tests \
${pytest_args_extra}
exitcode=$?
cd -

Loading…
Cancel
Save