mirror of
				https://github.com/flatcar/scripts.git
				synced 2025-10-31 08:11:03 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # Copyright (c) 2022 The Flatcar Maintainers.
 | |
| # Use of this source code is governed by a BSD-style license that can be
 | |
| # found in the LICENSE file.
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| # Test execution script for the AWS vendor image.
 | |
| # This script is supposed to run in the mantle container.
 | |
| 
 | |
| source ci-automation/vendor_test.sh
 | |
| 
 | |
| board="${CIA_ARCH}-usr"
 | |
| escaped_vernum="${CIA_VERNUM//+/-}"
 | |
| image_name="ci-${escaped_vernum}-${CIA_ARCH}"
 | |
| aws_instance_type_var="AWS_${CIA_ARCH}_INSTANCE_TYPE"
 | |
| aws_instance_type="${!aws_instance_type_var}"
 | |
| more_aws_instance_types_var="AWS_${CIA_ARCH}_MORE_INSTANCE_TYPES"
 | |
| set -o noglob # there shouldn't be any instance types with asterisks
 | |
|               # in it, but…
 | |
| more_aws_instance_types=( ${!more_aws_instance_types_var} )
 | |
| set +o noglob
 | |
| 
 | |
| image_file='flatcar_production_ami_image.bin'
 | |
| tarball="${image_file}.bz2"
 | |
| 
 | |
| if [[ "${AWS_AMI_ID}" == "" ]]; then
 | |
|     if [[ -f "${image_file}" ]]; then
 | |
|         echo "++++ ${CIA_TESTSCRIPT}: using existing ${image_file} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
 | |
|     else
 | |
|         echo "++++ ${CIA_TESTSCRIPT}: downloading ${tarball} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
 | |
|         copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/${tarball}" .
 | |
|         lbunzip2 "${tarball}"
 | |
|     fi
 | |
| 
 | |
|     aws_bucket="flatcar-kola-ami-import-${AWS_REGION}"
 | |
|     aws_s3_path="s3://${aws_bucket}/${escaped_vernum}/${board}/"
 | |
|     trap 'ore -d aws delete --region="${AWS_REGION}" --board="${board}" --name="${image_name}" --ami-name="${image_name}" --file="${image_file}" --bucket "${aws_s3_path}"' EXIT
 | |
|     ore aws initialize --region="${AWS_REGION}" --bucket "${aws_bucket}"
 | |
|     AWS_AMI_ID=$(ore aws upload --force --region="${AWS_REGION}" --board="${board}" --name="${image_name}" --ami-name="${image_name}" --ami-description="Flatcar Test ${image_name}" --file="${image_file}" --object-format=RAW --force --bucket "${aws_s3_path}" | jq -r .HVM)
 | |
|     echo "++++ ${CIA_TESTSCRIPT}: created new AMI ${AWS_AMI_ID} (will be removed after testing) ++++"
 | |
| fi
 | |
| 
 | |
| run_kola_tests() {
 | |
|     local instance_type="${1}"; shift
 | |
|     local instance_tapfile="${1}"; shift
 | |
| 
 | |
|     timeout --signal=SIGQUIT 6h \
 | |
|         kola run \
 | |
|          --board="${board}" \
 | |
|          --basename="${image_name}" \
 | |
|          --channel="${CIA_CHANNEL}" \
 | |
|          --offering='basic' \
 | |
|          --parallel="${AWS_PARALLEL}" \
 | |
|          --platform=aws \
 | |
|          --aws-ami="${AWS_AMI_ID}" \
 | |
|          --aws-region="${AWS_REGION}" \
 | |
|          --aws-type="${instance_type}" \
 | |
|          --aws-iam-profile="${AWS_IAM_PROFILE}" \
 | |
|          --tapfile="${instance_tapfile}" \
 | |
|          --image-version "${CIA_VERNUM}" \
 | |
|          "${@}"
 | |
| }
 | |
| 
 | |
| query_kola_tests() {
 | |
|     shift; # ignore the instance type
 | |
|     kola list --platform=aws --filter "${@}"
 | |
| }
 | |
| 
 | |
| # these are set in ci-config.env
 | |
| export AWS_ACCESS_KEY_ID
 | |
| export AWS_SECRET_ACCESS_KEY
 | |
| 
 | |
| run_kola_tests_on_instances \
 | |
|     "${aws_instance_type}" \
 | |
|     "${CIA_TAPFILE}" \
 | |
|     "${CIA_FIRST_RUN}" \
 | |
|     "${more_aws_instance_types[@]}" \
 | |
|     '--' \
 | |
|     'cl.internet' \
 | |
|     '--' \
 | |
|     "${@}"
 |