mirror of
https://github.com/wazuh/wazuh-docker.git
synced 2025-12-11 03:35:35 -06:00
Resolving conflicts
This commit is contained in:
commit
3b88bd9852
6
.env
6
.env
@ -1,6 +1,6 @@
|
|||||||
WAZUH_VERSION=4.12.2
|
WAZUH_VERSION=4.13.0
|
||||||
WAZUH_IMAGE_VERSION=4.12.2
|
WAZUH_IMAGE_VERSION=4.13.0
|
||||||
WAZUH_TAG_REVISION=1
|
WAZUH_TAG_REVISION=1
|
||||||
FILEBEAT_TEMPLATE_BRANCH=4.12.2
|
FILEBEAT_TEMPLATE_BRANCH=4.13.0
|
||||||
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
|
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
|
||||||
WAZUH_UI_REVISION=1
|
WAZUH_UI_REVISION=1
|
||||||
|
|||||||
2
.github/.goss.yaml
vendored
2
.github/.goss.yaml
vendored
@ -56,7 +56,7 @@ package:
|
|||||||
wazuh-manager:
|
wazuh-manager:
|
||||||
installed: true
|
installed: true
|
||||||
versions:
|
versions:
|
||||||
- 4.12.2
|
- 4.13.0
|
||||||
port:
|
port:
|
||||||
tcp:1514:
|
tcp:1514:
|
||||||
listening: true
|
listening: true
|
||||||
|
|||||||
@ -6,11 +6,10 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
image_tag:
|
image_tag:
|
||||||
description: 'Docker image tag'
|
description: 'Docker image tag'
|
||||||
default: '4.12.2'
|
default: '4.13.0'
|
||||||
required: true
|
required: true
|
||||||
docker_reference:
|
docker_reference:
|
||||||
description: 'wazuh-docker reference'
|
description: 'wazuh-docker reference'
|
||||||
default: 'v4.12.2'
|
|
||||||
required: true
|
required: true
|
||||||
products:
|
products:
|
||||||
description: 'Comma-separated list of the image names to build and push'
|
description: 'Comma-separated list of the image names to build and push'
|
||||||
@ -42,12 +41,11 @@ on:
|
|||||||
inputs:
|
inputs:
|
||||||
image_tag:
|
image_tag:
|
||||||
description: 'Docker image tag'
|
description: 'Docker image tag'
|
||||||
default: '4.12.2'
|
default: '4.13.0'
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
docker_reference:
|
docker_reference:
|
||||||
description: 'wazuh-docker reference'
|
description: 'wazuh-docker reference'
|
||||||
default: 'v4.12.2'
|
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
products:
|
products:
|
||||||
|
|||||||
3
.github/workflows/trivy-dashboard.yml
vendored
3
.github/workflows/trivy-dashboard.yml
vendored
@ -11,8 +11,7 @@ on:
|
|||||||
- published
|
- published
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- stable
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '34 2 * * 1'
|
- cron: '34 2 * * 1'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|||||||
3
.github/workflows/trivy-indexer.yml
vendored
3
.github/workflows/trivy-indexer.yml
vendored
@ -11,8 +11,7 @@ on:
|
|||||||
- published
|
- published
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- stable
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '34 2 * * 1'
|
- cron: '34 2 * * 1'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|||||||
3
.github/workflows/trivy-manager.yml
vendored
3
.github/workflows/trivy-manager.yml
vendored
@ -11,8 +11,7 @@ on:
|
|||||||
- published
|
- published
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- stable
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '34 2 * * 1'
|
- cron: '34 2 * * 1'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
single-node/config/wazuh_indexer_ssl_certs/*.pem
|
single-node/config/wazuh_indexer_ssl_certs/*.pem
|
||||||
single-node/config/wazuh_indexer_ssl_certs/*.key
|
single-node/config/wazuh_indexer_ssl_certs/*.key
|
||||||
multi-node/config/wazuh_indexer_ssl_certs/*.pem
|
multi-node/config/wazuh_indexer_ssl_certs/*.pem
|
||||||
multi-node/config/wazuh_indexer_ssl_certs/*.key
|
multi-node/config/wazuh_indexer_ssl_certs/*.key
|
||||||
|
*.log
|
||||||
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,6 +1,25 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [4.13.0]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added repository_bumper script. ([#1781](https://github.com/wazuh/wazuh-docker/pull/1781))
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Modify wazuh-keystore use ([#1750](https://github.com/wazuh/wazuh-docker/pull/1750)) \- (wazuh-keystore)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- Remove default docker reference version from workflow ([#1761](https://github.com/wazuh/wazuh-docker/pull/1761))
|
||||||
|
- Remove 'stable' branch ocurrencies ([#1757](https://github.com/wazuh/wazuh-docker/pull/1757))
|
||||||
|
|
||||||
## [4.12.2]
|
## [4.12.2]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@ -22,6 +41,7 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
- None
|
- None
|
||||||
|
|
||||||
|
|
||||||
## [4.12.1]
|
## [4.12.1]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"version": "4.12.2",
|
"version": "4.13.0",
|
||||||
"stage": "alpha0"
|
"stage": "alpha0"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,7 +13,7 @@ This script initializes the environment variables needed to build each of the im
|
|||||||
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
|
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ build-docker-images/build-images.sh -v 4.12.2
|
$ build-docker-images/build-images.sh -v 4.13.0
|
||||||
```
|
```
|
||||||
|
|
||||||
To get all the available script options use the -h or --help option:
|
To get all the available script options use the -h or --help option:
|
||||||
@ -26,7 +26,7 @@ Usage: build-docker-images/build-images.sh [OPTIONS]
|
|||||||
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
|
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
|
||||||
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
|
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
|
||||||
-r, --revision <rev> [Optional] Package revision. By default 1
|
-r, --revision <rev> [Optional] Package revision. By default 1
|
||||||
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.12.2.
|
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.13.0.
|
||||||
-h, --help Show this help.
|
-h, --help Show this help.
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -1,4 +1,4 @@
|
|||||||
WAZUH_IMAGE_VERSION=4.12.2
|
WAZUH_IMAGE_VERSION=4.13.0
|
||||||
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
|
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
|
||||||
WAZUH_TAG_REVISION=1
|
WAZUH_TAG_REVISION=1
|
||||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
|
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
|
||||||
@ -12,7 +12,7 @@ IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
|
|||||||
# License (version 2) as published by the FSF - Free Software
|
# License (version 2) as published by the FSF - Free Software
|
||||||
# Foundation.
|
# Foundation.
|
||||||
|
|
||||||
WAZUH_IMAGE_VERSION="4.12.2"
|
WAZUH_IMAGE_VERSION="4.13.0"
|
||||||
WAZUH_TAG_REVISION="1"
|
WAZUH_TAG_REVISION="1"
|
||||||
WAZUH_DEV_STAGE=""
|
WAZUH_DEV_STAGE=""
|
||||||
FILEBEAT_MODULE_VERSION="0.4"
|
FILEBEAT_MODULE_VERSION="0.4"
|
||||||
|
|||||||
@ -9,8 +9,8 @@ export CONFIG_DIR=${INSTALLATION_DIR}/config
|
|||||||
|
|
||||||
## Variables
|
## Variables
|
||||||
CERT_TOOL=wazuh-certs-tool.sh
|
CERT_TOOL=wazuh-certs-tool.sh
|
||||||
PACKAGES_URL=https://packages.wazuh.com/4.12/
|
PACKAGES_URL=https://packages.wazuh.com/4.13/
|
||||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.12/
|
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
|
||||||
|
|
||||||
## Check if the cert tool exists in S3 buckets
|
## Check if the cert tool exists in S3 buckets
|
||||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||||
|
|||||||
@ -22,8 +22,8 @@ export REPO_DIR=/unattended_installer
|
|||||||
## Variables
|
## Variables
|
||||||
CERT_TOOL=wazuh-certs-tool.sh
|
CERT_TOOL=wazuh-certs-tool.sh
|
||||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
||||||
PACKAGES_URL=https://packages.wazuh.com/4.12/
|
PACKAGES_URL=https://packages.wazuh.com/4.13/
|
||||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.12/
|
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
|
||||||
|
|
||||||
## Check if the cert tool exists in S3 buckets
|
## Check if the cert tool exists in S3 buckets
|
||||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||||
|
|||||||
@ -115,8 +115,8 @@ function_entrypoint_scripts() {
|
|||||||
function_configure_vulnerability_detection() {
|
function_configure_vulnerability_detection() {
|
||||||
if [ "$INDEXER_PASSWORD" != "" ]; then
|
if [ "$INDEXER_PASSWORD" != "" ]; then
|
||||||
>&2 echo "Configuring password."
|
>&2 echo "Configuring password."
|
||||||
/var/ossec/bin/wazuh-keystore -f indexer -k username -v $INDEXER_USERNAME
|
echo "$INDEXER_USERNAME" | /var/ossec/bin/wazuh-keystore -f indexer -k username
|
||||||
/var/ossec/bin/wazuh-keystore -f indexer -k password -v $INDEXER_PASSWORD
|
echo "$INDEXER_PASSWORD" | /var/ossec/bin/wazuh-keystore -f indexer -k password
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
## Variables
|
## Variables
|
||||||
CERT_TOOL=wazuh-certs-tool.sh
|
CERT_TOOL=wazuh-certs-tool.sh
|
||||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
||||||
PACKAGES_URL=https://packages.wazuh.com/4.12/
|
PACKAGES_URL=https://packages.wazuh.com/4.13/
|
||||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.12/
|
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
|
||||||
|
|
||||||
## Check if the cert tool exists in S3 buckets
|
## Check if the cert tool exists in S3 buckets
|
||||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||||
services:
|
services:
|
||||||
wazuh.master:
|
wazuh.master:
|
||||||
image: wazuh/wazuh-manager:4.12.2
|
image: wazuh/wazuh-manager:4.13.0
|
||||||
hostname: wazuh.master
|
hostname: wazuh.master
|
||||||
restart: always
|
restart: always
|
||||||
ulimits:
|
ulimits:
|
||||||
@ -43,7 +43,7 @@ services:
|
|||||||
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
||||||
|
|
||||||
wazuh.worker:
|
wazuh.worker:
|
||||||
image: wazuh/wazuh-manager:4.12.2
|
image: wazuh/wazuh-manager:4.13.0
|
||||||
hostname: wazuh.worker
|
hostname: wazuh.worker
|
||||||
restart: always
|
restart: always
|
||||||
ulimits:
|
ulimits:
|
||||||
@ -79,7 +79,7 @@ services:
|
|||||||
- ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
|
- ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
|
||||||
|
|
||||||
wazuh1.indexer:
|
wazuh1.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.12.2
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh1.indexer
|
hostname: wazuh1.indexer
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
@ -105,7 +105,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh2.indexer:
|
wazuh2.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.12.2
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh2.indexer
|
hostname: wazuh2.indexer
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
@ -127,7 +127,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh3.indexer:
|
wazuh3.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.12.2
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh3.indexer
|
hostname: wazuh3.indexer
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
@ -149,7 +149,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh.dashboard:
|
wazuh.dashboard:
|
||||||
image: wazuh/wazuh-dashboard:4.12.2
|
image: wazuh/wazuh-dashboard:4.13.0
|
||||||
hostname: wazuh.dashboard
|
hostname: wazuh.dashboard
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||||
services:
|
services:
|
||||||
wazuh.manager:
|
wazuh.manager:
|
||||||
image: wazuh/wazuh-manager:4.12.2
|
image: wazuh/wazuh-manager:4.13.0
|
||||||
hostname: wazuh.manager
|
hostname: wazuh.manager
|
||||||
restart: always
|
restart: always
|
||||||
ulimits:
|
ulimits:
|
||||||
@ -44,7 +44,7 @@ services:
|
|||||||
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
||||||
|
|
||||||
wazuh.indexer:
|
wazuh.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.12.2
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh.indexer
|
hostname: wazuh.indexer
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
@ -69,7 +69,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh.dashboard:
|
wazuh.dashboard:
|
||||||
image: wazuh/wazuh-dashboard:4.12.2
|
image: wazuh/wazuh-dashboard:4.13.0
|
||||||
hostname: wazuh.dashboard
|
hostname: wazuh.dashboard
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
150
tools/repository_bumper.sh
Normal file
150
tools/repository_bumper.sh
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script is used to update the version of a repository in the specified files.
|
||||||
|
# It takes a version number as an argument and updates the version in the specified files.
|
||||||
|
# Usage: ./repository_bumper.sh <version>
|
||||||
|
|
||||||
|
# Global variables
|
||||||
|
DIR=$(dirname "$(pwd)")
|
||||||
|
LOG_FILE="${DIR}/tools/repository_bumper_$(date +"%Y-%m-%d_%H-%M-%S-%3N").log"
|
||||||
|
VERSION=""
|
||||||
|
STAGE=""
|
||||||
|
FILES_EDITED=()
|
||||||
|
|
||||||
|
get_old_version_and_stage() {
|
||||||
|
local VERSION_FILE="${DIR}/VERSION.json"
|
||||||
|
|
||||||
|
OLD_VERSION=$(jq -r '.version' "${VERSION_FILE}")
|
||||||
|
OLD_STAGE=$(jq -r '.stage' "${VERSION_FILE}")
|
||||||
|
echo "Old version: ${OLD_VERSION}" | tee -a "${LOG_FILE}"
|
||||||
|
echo "Old stage: ${OLD_STAGE}" | tee -a "${LOG_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
grep_command() {
|
||||||
|
# This function is used to search for a specific string in the specified directory.
|
||||||
|
# It takes two arguments: the string to search for and the directory to search in.
|
||||||
|
# Usage: grep_command <string> <directory>
|
||||||
|
eval grep -Rl "${1}" "${2}" --exclude-dir=".git" --exclude="repository_bumper_*.log" --exclude="CHANGELOG.md" "${3}"
|
||||||
|
}
|
||||||
|
|
||||||
|
update_version_in_files() {
|
||||||
|
|
||||||
|
local OLD_MAYOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 1)"
|
||||||
|
local OLD_MINOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 2)"
|
||||||
|
local OLD_PATCH="$(echo "${OLD_VERSION}" | cut -d '.' -f 3)"
|
||||||
|
local NEW_MAYOR="$(echo "${VERSION}" | cut -d '.' -f 1)"
|
||||||
|
local NEW_MINOR="$(echo "${VERSION}" | cut -d '.' -f 2)"
|
||||||
|
local NEW_PATCH="$(echo "${VERSION}" | cut -d '.' -f 3)"
|
||||||
|
m_m_p_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}" "${DIR}") )
|
||||||
|
for file in "${m_m_p_files[@]}"; do
|
||||||
|
sed -i "s/\bv${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}\b/v${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g; s/\b${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
m_m_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}" "${DIR}") )
|
||||||
|
for file in "${m_m_files[@]}"; do
|
||||||
|
sed -i -E "/[0-9]+\.[0-9]+\.[0-9]+/! s/(^|[^0-9.])(${OLD_MAYOR}\.${OLD_MINOR})([^0-9.]|$)/\1${NEW_MAYOR}.${NEW_MINOR}\3/g" "$file"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
m_x_files=( $(grep_command "${OLD_MAYOR}\.x" "${DIR}") )
|
||||||
|
for file in "${m_x_files[@]}"; do
|
||||||
|
sed -i "s/\b${OLD_MAYOR}\.x\b/${NEW_MAYOR}\.x/g" "${file}"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if ! sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${DIR}/CHANGELOG.md"; then
|
||||||
|
echo "Error: Failed to update CHANGELOG.md" | tee -a "${LOG_FILE}"
|
||||||
|
fi
|
||||||
|
if [[ $(git diff --name-only "${DIR}/CHANGELOG.md") ]]; then
|
||||||
|
FILES_EDITED+=("${DIR}/CHANGELOG.md")
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
update_stage_in_files() {
|
||||||
|
local OLD_STAGE="$(echo "${OLD_STAGE}")"
|
||||||
|
files=( $(grep_command "${OLD_STAGE}" "${DIR}" --exclude="README.md") )
|
||||||
|
for file in "${files[@]}"; do
|
||||||
|
sed -i "s/${OLD_STAGE}/${STAGE}/g" "${file}"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
|
||||||
|
echo "Starting repository version bumping process..." | tee -a "${LOG_FILE}"
|
||||||
|
echo "Log file: ${LOG_FILE}"
|
||||||
|
# Parse arguments
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--version)
|
||||||
|
VERSION="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--stage)
|
||||||
|
STAGE="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Validate arguments
|
||||||
|
if [[ -z "$VERSION" ]]; then
|
||||||
|
echo "Error: --version argument is required." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$STAGE" ]]; then
|
||||||
|
echo "Error: --stage argument is required." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate if version is in the correct format
|
||||||
|
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "Error: Version must be in the format X.Y.Z (e.g., 1.2.3)." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate if stage is in the correct format
|
||||||
|
STAGE=$(echo "$STAGE" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if ! [[ "$STAGE" =~ ^(alpha[0-9]*|beta[0-9]*|rc[0-9]*|stable)$ ]]; then
|
||||||
|
echo "Error: Stage must be one of the following examples: alpha1, beta1, rc1, stable." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get old version and stage
|
||||||
|
get_old_version_and_stage
|
||||||
|
|
||||||
|
if [[ "$OLD_VERSION" == "$VERSION" && "$OLD_STAGE" == "$STAGE" ]]; then
|
||||||
|
echo "Version and stage are already up to date." | tee -a "${LOG_FILE}"
|
||||||
|
echo "No changes needed." | tee -a "${LOG_FILE}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if [[ "$OLD_VERSION" != "$VERSION" ]]; then
|
||||||
|
echo "Updating version from $OLD_VERSION to $VERSION" | tee -a "${LOG_FILE}"
|
||||||
|
update_version_in_files "$VERSION"
|
||||||
|
fi
|
||||||
|
if [[ "$OLD_STAGE" != "$STAGE" ]]; then
|
||||||
|
echo "Updating stage from $OLD_STAGE to $STAGE" | tee -a "${LOG_FILE}"
|
||||||
|
update_stage_in_files "$STAGE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "The following files were edited:" | tee -a "${LOG_FILE}"
|
||||||
|
for file in $(printf "%s\n" "${FILES_EDITED[@]}" | sort -u); do
|
||||||
|
echo "${file}" | tee -a "${LOG_FILE}"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Version and stage updated successfully." | tee -a "${LOG_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call the main method with all arguments
|
||||||
|
main "$@"
|
||||||
Loading…
x
Reference in New Issue
Block a user