@@ -17,6 +17,8 @@ REVISION="00"
1717DATE=" "
1818CURRENT_VERSION=" "
1919TAG=false
20+ SET_AS_MAIN=false
21+ SKIP_URLS=" no"
2022WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE=" ${REPO_PATH} /.github/workflows/4_builderpackage_dashboard.yml"
2123DOCKERFILE_FOR_BASE_PACKAGES=" ${REPO_PATH} /dev-tools/build-packages/base-packages-to-base/base-packages.Dockerfile"
2224README_FOR_BASE_PACKAGES=" ${REPO_PATH} /dev-tools/build-packages/base-packages-to-base/README.md"
@@ -70,7 +72,7 @@ sed_inplace() {
7072
7173# Function to show usage
7274usage () {
73- echo " Usage: $0 [--version VERSION --stage STAGE | --tag] [--date DATE] [--help]"
75+ echo " Usage: $0 [--version VERSION --stage STAGE | --tag] [--date DATE] [--set_as_main] [-- help]"
7476 echo " "
7577 echo " Parameters:"
7678 echo " --version VERSION Specify the version (e.g., 4.6.0)"
@@ -84,6 +86,9 @@ usage() {
8486 echo " If --stage is not set, it will be stageless(e.g., v4.6.0)"
8587 echo " Otherwise it will be with the provided stage (e.g., v4.6.0-alpha1)"
8688 echo " If this is set, --version and --stage are not required."
89+ echo " --set_as_main Enable main branch mode: bump version values only, keep branch"
90+ echo " references pointing to main (alias: --set-as-main)"
91+ echo " Use only when running on branch main to prepare a new version."
8792 echo " --help Display this help message"
8893 echo " "
8994 echo " Examples:"
@@ -92,6 +97,7 @@ usage() {
9297 echo " $0 --tag --stage alpha1 --date 2025-04-15"
9398 echo " $0 --tag --date 2025-04-15"
9499 echo " $0 --tag"
100+ echo " $0 --version 5.0.0 --stage alpha0 --set_as_main"
95101}
96102
97103# --- Core Logic Functions ---
@@ -119,9 +125,13 @@ parse_arguments() {
119125 --tag)
120126 TAG=true
121127 shift
122- ;;
128+ ;;
129+ --set_as_main|--set-as-main)
130+ SET_AS_MAIN=true
131+ shift
132+ ;;
123133 * )
124- log " ERROR: Unknown option: $1 " # Log error instead of just echo
134+ log " ERROR: Unknown option: $1 "
125135 usage
126136 exit 1
127137 ;;
@@ -425,15 +435,29 @@ update_build_workflow() {
425435
426436 if grep -qE ' \.yml@[^"[:space:]]+' " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE " ; then
427437 log " Pattern found in $( basename $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE ) . Attempting update..."
428- # If the pattern exists, perform the substitution
429- sed_inplace -E " s/(\.yml@)[^\" [:space:]]+/\1${replacement} /g" " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE "
438+ if [[ " $SKIP_URLS " == " yes" ]]; then
439+ # set-as-main mode: only update versioned .yml@x.y.z refs, preserve .yml@main
440+ sed_inplace -E " s|(\.yml@)${VERSION_PATTERN} |\1${replacement} |g" " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE "
441+ else
442+ # Normal mode: update all .yml@<ref> (versioned and main)
443+ sed_inplace -E " s/(\.yml@)[^\" [:space:]]+/\1${replacement} /g" " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE "
444+ fi
430445 modified=true
431446 else
432447 log " Pattern not found in $( basename $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE ) . Skipping update."
433448 fi
434449
450+ # Update default: 'main' branch input defaults only when not in set-as-main mode
451+ if [[ " $SKIP_URLS " != " yes" ]]; then
452+ if grep -qE " ^[[:space:]]*default: 'main'" " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE " ; then
453+ log " Branch input defaults found in $( basename $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE ) . Attempting update..."
454+ sed_inplace -E " s/^([[:space:]]*default: )'main'([[:space:]]*)$/\1'${VERSION} '\2/" " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE "
455+ modified=true
456+ fi
457+ fi
458+
435459 if [[ $modified == true ]]; then
436- log " Successfully updated references to @ ${replacement} in $( basename " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE " ) "
460+ log " Successfully updated references in $( basename " $WAZUH_DASHBOARD_PLUGINS_WORKFLOW_FILE " ) "
437461 fi
438462 fi
439463}
@@ -755,6 +779,23 @@ update_deb_changelog() {
755779 fi
756780}
757781
782+ update_branch_reference_defaults () {
783+ local branch_files=(
784+ " ${REPO_PATH} /.github/workflows/5_builderpackage_dashboard_core.yml"
785+ " ${REPO_PATH} /.github/workflows/5_builderpackage_dev_docker_image.yml"
786+ )
787+
788+ for f in " ${branch_files[@]} " ; do
789+ if [ -f " $f " ]; then
790+ log " Updating branch input defaults in $( basename $f ) ..."
791+ sed_inplace -E " s/^([[:space:]]*default: )'main'([[:space:]]*)$/\1'${VERSION} '\2/" " $f "
792+ log " Successfully updated branch input defaults in $( basename $f ) ."
793+ else
794+ log " WARNING: $( basename $f ) not found. Skipping branch defaults update."
795+ fi
796+ done
797+ }
798+
758799# --- Main Execution ---
759800main () {
760801 # Initialize log file
@@ -773,6 +814,14 @@ main() {
773814 parse_arguments " $@ "
774815 validate_input
775816
817+ # Determine if main branch references should be preserved
818+ if [ " $SET_AS_MAIN " = true ]; then
819+ SKIP_URLS=" yes"
820+ log " Main branch mode enabled: version values will be updated but branch references will remain pointing to main"
821+ else
822+ SKIP_URLS=" no"
823+ fi
824+
776825 log " Version: $VERSION "
777826 log " Stage: $STAGE "
778827
@@ -791,6 +840,9 @@ main() {
791840 update_root_version_json
792841 update_package_json
793842 update_build_workflow
843+ if [[ " $SKIP_URLS " != " yes" ]]; then
844+ update_branch_reference_defaults
845+ fi
794846 update_base_package_dockerfile
795847 update_readme_for_base_packages
796848 update_rendering_service_test_snap
0 commit comments