From 38557d8c48f92593792394b1900588d830b10d3c Mon Sep 17 00:00:00 2001 From: pmikus Date: Thu, 16 May 2024 10:56:08 +0200 Subject: feat(bootstrap): Add more granular eb scripts Signed-off-by: Peter Mikus Change-Id: Icbcd373ef815fa082d9be022fc201c96df140536 --- .../bootstrap_aws_eb_version_create_release.sh | 32 +++++++++++ resources/libraries/bash/function/eb_version.sh | 67 +++++++--------------- 2 files changed, 52 insertions(+), 47 deletions(-) create mode 100755 resources/libraries/bash/entry/bootstrap_aws_eb_version_create_release.sh diff --git a/resources/libraries/bash/entry/bootstrap_aws_eb_version_create_release.sh b/resources/libraries/bash/entry/bootstrap_aws_eb_version_create_release.sh new file mode 100755 index 0000000000..0bbf3b83ff --- /dev/null +++ b/resources/libraries/bash/entry/bootstrap_aws_eb_version_create_release.sh @@ -0,0 +1,32 @@ +# Copyright (c) 2024 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License 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 -exuo pipefail + +# Assumptions: +# + There is a directory holding CSIT code to use (this script is there). +# Consequences (and specific assumptions) are multiple, +# examine tree of functions for current description. + +# "set -eu" handles failures from the following two lines. +BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))" +BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")" +source "${BASH_FUNCTION_DIR}/common.sh" || { + echo "Source failed." >&2 + exit 1 +} +source "${BASH_FUNCTION_DIR}/eb_version.sh" || die "Source failed." +source "${BASH_FUNCTION_DIR}/hugo.sh" || die "Source failed." +source "${BASH_FUNCTION_DIR}/terraform.sh" || die "Source failed." +common_dirs || die +eb_version_create_release || die diff --git a/resources/libraries/bash/function/eb_version.sh b/resources/libraries/bash/function/eb_version.sh index 0393030065..869e4b989c 100644 --- a/resources/libraries/bash/function/eb_version.sh +++ b/resources/libraries/bash/function/eb_version.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Copyright (c) 2023 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -67,33 +67,16 @@ function eb_version_build_verify () { # Build and verify Elastic Beanstalk CDash integrity. # - # Variable read: - # - ${CSIT_DIR} - CSIT main directory. # Variables set: # - ${TERRAFORM_MODULE_DIR} - Terraform module sub-directory. # Functions called: - # - hugo_init_modules - Initialize Hugo modules. - # - hugo_build_site - Build static site with Hugo. # - terraform_init - Initialize Terraform modules. # - terraform_validate - Validate Terraform code. # - die - Print to stderr and exit. set -exuo pipefail - if ! installed zip; then - die "Please install zip!" - fi - - hugo_init_modules || die "Failed to call Hugo initialize!" - hugo_build_site || die "Failed to call Hugo build!" - - pushd "${CSIT_DIR}"/csit.infra.dash || die "Pushd failed!" - pushd app || die "Pushd failed!" - find . -type d -name "__pycache__" -exec rm -rf "{}" \; - find . -type d -name ".webassets-cache" -exec rm -rf "{}" \; - zip -r ../app.zip . || die "Compress failed!" - popd || die "Popd failed!" - popd || die "Popd failed!" + eb_version_create_release || die "Failed to create release!" TERRAFORM_MODULE_DIR="terraform-aws-fdio-csit-dash-app-base" @@ -103,46 +86,36 @@ function eb_version_build_verify () { } -function generate_report () { +function eb_version_create_release () { - # Generate report content. + # Create release of Elastic Beanstalk CDash. # # Variable read: - # - ${TOOLS_DIR} - Path to existing resources subdirectory "tools". - # - ${GERRIT_BRANCH} - Gerrit branch used for release tagging. - # Variables set: - # - ${CODE_EXIT_STATUS} - Exit status of report generation. + # - ${CSIT_DIR} - CSIT main directory. # Functions called: + # - hugo_init_modules - Initialize Hugo modules. + # - hugo_build_site - Build static site with Hugo. # - die - Print to stderr and exit. set -exuo pipefail - pushd "${TOOLS_DIR}"/presentation || die "Pushd failed!" - - # Set default values in config array. - typeset -A CFG - typeset -A DIR - - DIR[WORKING]="_tmp" - - # Create working directories. - mkdir "${DIR[WORKING]}" || die "Mkdir failed!" - - export PYTHONPATH=`pwd`:`pwd`/../../../ || die "Export failed!" + if ! installed zip; then + die "Please install zip!" + fi - all_options=("pal.py") - all_options+=("--specification" "specifications/report") - all_options+=("--release" "${GERRIT_BRANCH:-master}") - all_options+=("--week" $(date "+%V")) - all_options+=("--logging" "INFO") - all_options+=("--force") + hugo_init_modules || die "Failed to call Hugo initialize!" + hugo_build_site || die "Failed to call Hugo build!" - set +e - python "${all_options[@]}" - CODE_EXIT_STATUS="$?" - set -e + pushd "${CSIT_DIR}"/csit.infra.dash || die "Pushd failed!" + pushd app || die "Pushd failed!" + find . -type d -name "__pycache__" -exec rm -rf "{}" \; + find . -type d -name ".webassets-cache" -exec rm -rf "{}" \; + zip -r ../app.zip . || die "Compress failed!" + popd || die "Popd failed!" + popd || die "Popd failed!" } + function installed () { # Check if the given utility is installed. Fail if not installed. -- cgit 1.2.3-korg