aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/bash/function/eb_version.sh
diff options
context:
space:
mode:
authorpmikus <peter.mikus@protonmail.ch>2023-03-17 13:24:42 +0000
committerpmikus <peter.mikus@protonmail.ch>2023-03-20 15:35:40 +0000
commitd66bbe4d85079621e13d6e2940c933da1297ba2b (patch)
tree7849a7d8ed4a7a50cd2d1649033f87f1072e2d98 /resources/libraries/bash/function/eb_version.sh
parente6655fbc1f65e2e4599afd43e52a8cbecb810fe9 (diff)
feat(bootstrap): CDash CI
Signed-off-by: pmikus <peter.mikus@protonmail.ch> Change-Id: Ia9f5b1c9036b9f09c4d9bb041a41e9b49d2ead7f
Diffstat (limited to 'resources/libraries/bash/function/eb_version.sh')
-rw-r--r--resources/libraries/bash/function/eb_version.sh158
1 files changed, 158 insertions, 0 deletions
diff --git a/resources/libraries/bash/function/eb_version.sh b/resources/libraries/bash/function/eb_version.sh
new file mode 100644
index 0000000000..7e1fdc5b6c
--- /dev/null
+++ b/resources/libraries/bash/function/eb_version.sh
@@ -0,0 +1,158 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 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
+
+
+function die_on_error () {
+
+ # Source this fragment if you want to abort on any failure.
+ #
+ # Variables read:
+ # - CODE_EXIT_STATUS - Exit status of report generation.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ if [[ "${CODE_EXIT_STATUS}" != "0" ]]; then
+ die "Failed to generate docs!" "${CODE_EXIT_STATUS}"
+ fi
+}
+
+
+function eb_version_deploy () {
+
+ # Deploy Elastic Beanstalk CDash content.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory.
+ # - ${TERRAFORM_OUTPUT_VAL} - Terraform output value.
+ # Variables set:
+ # - CODE_EXIT_STATUS - Exit status of report generation.
+ # - TERRAFORM_OUTPUT_VAR - Register Terraform output variable name.
+ # Functions called:
+ # - eb_version_verify - Build and verify EB version.
+ # - terraform_apply - Apply EB version by Terraform.
+ # - terraform_output - Get the application name string from Terraform.
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ eb_version_verify || die "Failed to call Elastic Beanstalk verify!"
+ terraform_apply || die "Failed to call Terraform apply!"
+
+ TERRAFORM_OUTPUT_VAR="application_version"
+ terraform_output || die "Failed to call Terraform output!"
+
+ #aws --region eu-central-1 elasticbeanstalk update-environment \
+ # --environment-name fdio-csit-dash-env \
+ # --version-label "${TERRAFORM_OUTPUT_VAL}"
+}
+
+
+function eb_version_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
+
+ 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!"
+
+ TERRAFORM_MODULE_DIR="terraform-aws-fdio-csit-dash-app-base"
+
+ export TF_VAR_application_version="${BUILD_ID-50}"
+ hugo_init_modules || die "Failed to call Hugo initialize!"
+ hugo_build_site || die "Failed to call Hugo build!"
+ terraform_init || die "Failed to call terraform init!"
+ terraform_validate || die "Failed to call terraform validate!"
+}
+
+
+function generate_report () {
+
+ # Generate report content.
+ #
+ # 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.
+ # Functions called:
+ # - 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!"
+
+ 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")
+
+ set +e
+ python "${all_options[@]}"
+ CODE_EXIT_STATUS="$?"
+ set -e
+}
+
+function installed () {
+
+ # Check if the given utility is installed. Fail if not installed.
+ #
+ # Arguments:
+ # - ${1} - Utility to check.
+ # Returns (implicitly):
+ # - 0 - If command is installed.
+ # - 1 - If command is not installed.
+
+ set -exuo pipefail
+
+ command -v "${1}"
+}