1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#!/usr/bin/env bash
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License is located at
#
# http://aws.amazon.com/apache2.0
#
# or in the "license" file accompanying this file. This file is distributed
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied. See the License for the specific language governing
# permissions and limitations under the License.
set -eu
source codebuild/bin/s2n_setup_env.sh
source codebuild/bin/utils.sh
# Disable PQ
export S2N_NO_PQ=1
# Limit the number of child processes in the test run
export RUST_BACKTRACE=1
export TOX_TEST_NAME="$INTEGV2_TEST"
# There can be only one artifact config per batch job,
# so we're scipting the baseline upload steps here.
upload_artifacts(){
cd tests/integrationv2/target/criterion
echo "Creating zip ${AWS_S3_PATH}"
zip -r "${AWS_S3_PATH}" ./*
aws s3 cp "${AWS_S3_PATH}" "${AWS_S3_URL}"
echo "S3 upload complete"
}
if [ -d "third-party-src" ]; then
echo "Not running against c.a.c."
return 0
fi
# setting LOCAL_TESTING disables a check for an existing baseline.
if [ -z "${LOCAL_TESTING:-}" ]; then
# Fetch creds and the latest release number.
gh_login s2n_codebuild_PRs
LATEST_RELEASE_VER=$(get_latest_release)
# Build a specific filename for this release
AWS_S3_PATH="integv2criterion_${INTEGV2_TEST}_${LATEST_RELEASE_VER}.zip"
zip_count=$(aws s3 ls "${AWS_S3_URL}${AWS_S3_PATH}"|wc -l||true)
# Only do the baseline if an artifact for the current release doesn't exist.
if [ "$zip_count" -eq 0 ]; then
echo "File ${AWS_S3_URL}${AWS_S3_PATH} not found"
criterion_install_deps
ORIGINAL_COMMIT=$(git rev-parse HEAD)
git fetch --tags
git checkout "$LATEST_RELEASE_VER"
S2N_USE_CRITERION=baseline make -C tests/integrationv2 "$INTEGV2_TEST"
upload_artifacts
git reset --hard ${ORIGINAL_COMMIT}
else
echo "Found existing artifact for ${LATEST_RELEASE_VER}, not rebuilding."
exit 0
fi
else
echo "Local testing enabled; baselining without checking s3"
criterion_install_deps
S2N_USE_CRITERION=baseline make -C tests/integrationv2 "$INTEGV2_TEST"
fi
|