@@ -700,7 +700,7 @@ begin_group() {
700
700
echo " travis_fold:start:$TITLE "
701
701
fi
702
702
else
703
- echo " %< --- $TITLE ------"
703
+ echo " ${KASH_TXT_BOLD} %< --- $TITLE ------${KASK_TXT_RESET} "
704
704
fi
705
705
}
706
706
@@ -720,7 +720,7 @@ end_group() {
720
720
echo " travis_fold:end:$TITLE "
721
721
fi
722
722
else
723
- echo " ------ $TITLE --- >%"
723
+ echo " ${KASH_TXT_BOLD} ------ $TITLE --- >%${KASH_TXT_RESET} "
724
724
fi
725
725
}
726
726
@@ -904,28 +904,82 @@ load_value_files() {
904
904
# ## Kalisio
905
905
# ##
906
906
907
+ # Returns the kalisio flavor based on the git ref (tag or branch name).
908
+ # Known flavors are 'dev', 'test' and 'prod'.
909
+ # Expected args:
910
+ # 1. the git ref name
911
+ get_flavor_from_git_ref () {
912
+ local GIT_REF=$1
913
+
914
+ case " $GIT_REF " in
915
+ # Will match anything beginning with 'prod-'
916
+ prod-* )
917
+ printf " prod"
918
+ ;;
919
+ # Will match single 'test' or anything beginning with 'test-'
920
+ test | test-* )
921
+ printf " test"
922
+ ;;
923
+ # Anything else is 'dev' flavor
924
+ * )
925
+ printf " dev"
926
+ ;;
927
+ esac
928
+ }
929
+
930
+ # Returns the kalisio version based on the git ref (tag or branch name).
931
+ # Version may be MAJOR.MINOR (eg. with 'test' flavors) or MAJOR.MINOR.PATCH (eg. with 'prod' flavors)
932
+ # Expected args:
933
+ # 1. the git ref name
934
+ get_version_from_git_ref () {
935
+ local GIT_REF=$1
936
+
937
+ local VERSION_REGEX=" -v([0-9]+\.[0-9]+(\.[0-9]+)?)"
938
+ if [[ " $GIT_REF " =~ $VERSION_REGEX ]]; then
939
+ printf " %s" " ${BASH_REMATCH[1]} "
940
+ fi
941
+ }
942
+
943
+ # Returns the kalisio custom field based on the git ref (tag or branch name).
944
+ # Expected args:
945
+ # 1. the git ref name
946
+ get_custom_from_git_ref () {
947
+ local GIT_REF=$1
948
+
949
+ local CUSTOM_REGEX=" (^|-)([a-zA-Z0-9]+)$"
950
+ if [[ " $GIT_REF " =~ $CUSTOM_REGEX ]]; then
951
+ if [[ " ${BASH_REMATCH[1]} " == " " ]]; then
952
+ # If first capture group is empty => that's probably a 'dev' flavor.
953
+ # The branch name = the custom field (except for master and main)
954
+ #
955
+ case " ${BASH_REMATCH[2]} " in
956
+ # Also exclude 'test' as it's a valid branch name for test flavor
957
+ master | main | test)
958
+ ;;
959
+ * )
960
+ printf " %s" " ${BASH_REMATCH[2]} "
961
+ ;;
962
+ esac
963
+ else
964
+ # Otherwise, that's probably a test or prod flavor,
965
+ printf " %s" " ${BASH_REMATCH[2]} "
966
+ fi
967
+ fi
968
+ }
969
+
907
970
# Returns the kalisio flavor (prod, test, dev) according to current branch/tag name
908
971
# Expected args:
909
972
# 1. the repository root folder
910
973
get_flavor_from_git () {
911
974
local REPO_DIR=$1
912
- # Matches 'test' but also 'test-v1.2'
913
- local TEST_FLAVOR_REGEX=" ^test(-v[0-9]+\.[0-9]+)?$"
914
- # Only matches 'prod-v1.2.3'
915
- local PROD_FLAVOR_REGEX=" ^prod-v[0-9]+\.[0-9]+\.[0-9]+$"
916
975
917
976
local GIT_TAG
918
977
GIT_TAG=$( get_git_tag " $REPO_DIR " )
919
978
local GIT_BRANCH
920
979
GIT_BRANCH=$( get_git_branch " $REPO_DIR " )
980
+ local GIT_REF=" ${GIT_TAG:- $GIT_BRANCH } "
921
981
922
- if [[ " $GIT_TAG " =~ $PROD_FLAVOR_REGEX ]]; then
923
- printf " prod"
924
- elif [[ " $GIT_BRANCH " =~ $TEST_FLAVOR_REGEX ]]; then
925
- printf " test"
926
- else
927
- printf " dev"
928
- fi
982
+ get_flavor_from_git_ref " $GIT_REF "
929
983
}
930
984
931
985
# Returns the git ref that produced the given container tag.
@@ -1048,26 +1102,20 @@ setup_app_workspace() {
1048
1102
GIT_REF=" $7 "
1049
1103
fi
1050
1104
1051
- if [ -z " $KLI_BASE " ]; then
1052
- KLI_BASE=" $DEVELOPMENT_DIR /$APP_NAME "
1053
- else
1054
- KLI_BASE=" $DEVELOPMENT_DIR /$KLI_BASE /$APP_NAME "
1055
- fi
1105
+ local APP_FLAVOR
1106
+ APP_FLAVOR=$( get_flavor_from_git_ref " $GIT_REF " )
1107
+ local APP_VERSION
1108
+ APP_VERSION=$( get_version_from_git_ref " $GIT_REF " )
1109
+ local APP_CUSTOM
1110
+ APP_CUSTOM=$( get_custom_from_git_ref " $GIT_REF " )
1056
1111
1057
1112
# determine associated kli file
1058
- local KLI_FILE
1059
- local PROD_REGEX=" ^prod-v([0-9]+\.[0-9]+\.[0-9]+)$"
1060
- local TEST_REGEX=" ^test-v([0-9]+\.[0-9]+)$"
1061
- if [[ " $GIT_REF " =~ $PROD_REGEX ]]; then
1062
- KLI_FILE=" $KLI_BASE /prod/$APP_NAME -${BASH_REMATCH[1]} .js"
1063
- elif [[ " $GIT_REF " =~ $TEST_REGEX ]]; then
1064
- KLI_FILE=" $KLI_BASE /test/$APP_NAME -${BASH_REMATCH[1]} .js"
1065
- else
1066
- KLI_FILE=" $KLI_BASE /dev/$APP_NAME -$GIT_REF .js"
1067
- if [ ! -f " $KLI_FILE " ]; then
1068
- KLI_FILE=" $KLI_BASE /dev/$APP_NAME .js"
1069
- fi
1070
- fi
1113
+ local KLI_FILE=" $DEVELOPMENT_DIR "
1114
+ [[ " $KLI_BASE " != " " ]] && KLI_FILE=" $KLI_FILE /$KLI_BASE "
1115
+ KLI_FILE=" $KLI_FILE /$APP_NAME /$APP_FLAVOR /$APP_NAME "
1116
+ [[ " $APP_VERSION " != " " ]] && KLI_FILE=" $KLI_FILE -$APP_VERSION "
1117
+ [[ " $APP_CUSTOM " != " " ]] && KLI_FILE=" $KLI_FILE -$APP_CUSTOM "
1118
+ KLI_FILE=" $KLI_FILE .js"
1071
1119
1072
1120
# run kli !
1073
1121
if [ " $KLI_RUN " = kli ] || [ " $KLI_RUN " = klifull ]; then
@@ -1096,34 +1144,29 @@ init_app_infos() {
1096
1144
local APP_VERSION
1097
1145
APP_VERSION=$( yq --output-format=yaml ' .version' " $REPO_ROOT /package.json" )
1098
1146
1099
- KLI_BASE=" $KLI_BASE /$APP_NAME "
1100
-
1101
1147
local GIT_TAG
1102
1148
GIT_TAG=$( get_git_tag " $REPO_ROOT " )
1103
1149
local GIT_BRANCH
1104
1150
GIT_BRANCH=$( get_git_branch " $REPO_ROOT " )
1105
-
1106
1151
local GIT_REF=" ${GIT_TAG:- $GIT_BRANCH } "
1107
1152
1108
1153
local APP_FLAVOR
1109
- local KLI_FILE
1110
- local PROD_REGEX=" ^prod-v([0-9]+\.[0-9]+\.[0-9]+)$"
1111
- local TEST_REGEX=" ^test-v([0-9]+\.[0-9]+)$"
1112
- if [[ " $GIT_REF " =~ $PROD_REGEX ]]; then
1113
- APP_FLAVOR=" prod"
1114
- KLI_FILE=" $KLI_BASE /$APP_FLAVOR /$APP_NAME -${BASH_REMATCH[1]} .js"
1115
- elif [[ " $GIT_REF " =~ $TEST_REGEX ]]; then
1116
- APP_FLAVOR=" test"
1117
- KLI_FILE=" $KLI_BASE /$APP_FLAVOR /$APP_NAME -${BASH_REMATCH[1]} .js"
1118
- else
1119
- APP_FLAVOR=" dev"
1120
- KLI_FILE=" $KLI_BASE /$APP_FLAVOR /$APP_NAME -$GIT_REF .js"
1121
- if [ ! -f " $KLI_FILE " ]; then
1122
- KLI_FILE=" $KLI_BASE /$APP_FLAVOR /$APP_NAME .js"
1123
- fi
1124
- fi
1154
+ APP_FLAVOR=$( get_flavor_from_git_ref " $GIT_REF " )
1155
+ local APP_CUSTOM
1156
+ APP_CUSTOM=$( get_custom_from_git_ref " $GIT_REF " )
1157
+
1158
+ local KLI_FILE=" $KLI_BASE /$APP_NAME /$APP_FLAVOR /$APP_NAME "
1159
+ case " $APP_FLAVOR " in
1160
+ prod | test)
1161
+ KLI_FILE=" $KLI_FILE -$APP_VERSION "
1162
+ ;;
1163
+ * )
1164
+ ;;
1165
+ esac
1166
+ [[ " $APP_CUSTOM " != " " ]] && KLI_FILE=" $KLI_FILE -$APP_CUSTOM "
1167
+ KLI_FILE=" $KLI_FILE .js"
1125
1168
1126
- APP_INFOS=(" $APP_NAME " " $APP_VERSION " " $APP_FLAVOR " " $GIT_TAG " " $GIT_BRANCH " " $KLI_FILE " )
1169
+ APP_INFOS=(" $APP_NAME " " $APP_VERSION " " $APP_FLAVOR " " $APP_CUSTOM " " $ GIT_TAG" " $GIT_BRANCH " " $KLI_FILE " )
1127
1170
}
1128
1171
1129
1172
# Extract app name from app infos
@@ -1144,22 +1187,28 @@ get_app_flavor() {
1144
1187
echo " ${APP_INFOS[2]} "
1145
1188
}
1146
1189
1190
+ # Extract app flavor from app infos
1191
+ # NOTE: requires a call to init_app_infos first
1192
+ get_app_custom () {
1193
+ echo " ${APP_INFOS[3]} "
1194
+ }
1195
+
1147
1196
# Extract app tag from app infos
1148
1197
# NOTE: requires a call to init_app_infos first
1149
1198
get_app_tag () {
1150
- echo " ${APP_INFOS[3 ]} "
1199
+ echo " ${APP_INFOS[4 ]} "
1151
1200
}
1152
1201
1153
1202
# Extract app branch from app infos
1154
1203
# NOTE: requires a call to init_app_infos first
1155
1204
get_app_branch () {
1156
- echo " ${APP_INFOS[4 ]} "
1205
+ echo " ${APP_INFOS[5 ]} "
1157
1206
}
1158
1207
1159
1208
# Extract app kli file from app infos
1160
1209
# NOTE: requires a call to init_app_infos first
1161
1210
get_app_kli_file () {
1162
- echo " ${APP_INFOS[5 ]} "
1211
+ echo " ${APP_INFOS[6 ]} "
1163
1212
}
1164
1213
1165
1214
# Run backend tests for the given app.
0 commit comments