feat(bootstrap): Add more granular eb scripts 94/40894/2
authorpmikus <peter.mikus@protonmail.ch>
Thu, 16 May 2024 08:56:08 +0000 (10:56 +0200)
committerPeter Mikus <peter.mikus@protonmail.ch>
Thu, 16 May 2024 08:58:12 +0000 (08:58 +0000)
Signed-off-by: Peter Mikus <peter.mikus@protonmail.ch>
Change-Id: Icbcd373ef815fa082d9be022fc201c96df140536

resources/libraries/bash/entry/bootstrap_aws_eb_version_create_release.sh [new file with mode: 0755]
resources/libraries/bash/function/eb_version.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 (executable)
index 0000000..0bbf3b8
--- /dev/null
@@ -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
index 0393030..869e4b9 100644 (file)
@@ -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.