diff --git a/.gitea/conventional_commits/commit-msg b/.gitea/conventional_commits/commit-msg index 4839f8e..335984a 100755 --- a/.gitea/conventional_commits/commit-msg +++ b/.gitea/conventional_commits/commit-msg @@ -7,8 +7,7 @@ echo "Running commit message checks..." # Get the commit message commit="$(cat .git/COMMIT_EDITMSG)" # Define the conventional commit regex -regex="^((build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(.+\))?(!?):\s([a-zA-Z0-9-_!\&\.\%\"\'\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE))))|(release: .*)$" - +regex='^((build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(.+\))?(!?):\s([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE))))|(release: .*)$' # Check if the commit message matches the conventional commit format if ! echo "$commit" | grep -Pq "$regex" diff --git a/.gitea/conventional_commits/generate-version.sh b/.gitea/conventional_commits/generate-version.sh index cf8893a..b4654db 100755 --- a/.gitea/conventional_commits/generate-version.sh +++ b/.gitea/conventional_commits/generate-version.sh @@ -46,6 +46,7 @@ create_file() { } get_commit_range() { + rm $TEMP_FILE_PATH/messages.txt if [[ $LAST_TAG =~ $PATTERN ]]; then create_file true else @@ -62,16 +63,20 @@ start() { increment_type="" while read message; do - if [[ $message =~ (([a-zA-Z]+)(\(.+\))?\!:)|(BREAKING CHANGE:) ]]; then + echo $message + if echo $message | grep -Pq '(feat|style)(\([\w]+\))?!:([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE)))'; then increment_type="major" + echo "a" break - elif [[ $message =~ (^(feat|style)(\(.+\))?:) ]]; then + elif echo $message | grep -Pq '(feat|style)(\([\w]+\))?:([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE)))'; then if [ -z "$increment_type" ] || [ "$increment_type" == "patch" ]; then increment_type="minor" - fi - elif [[ $message =~ ^((fix|build|perf|refactor|revert)(\(.+\))?:) ]]; then + echo "b" + fi + elif echo $message | grep -Pq '(build|fix|perf|refactor|revert)(\(.+\))?:\s([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE)))'; then if [ -z "$increment_type" ]; then increment_type="patch" + echo "c" fi fi done < $TEMP_FILE_PATH/messages.txt @@ -82,9 +87,10 @@ start() { gitchangelog | grep -v "[rR]elease:" > HISTORY.md git add DotnetTestLib/VERSION HISTORY.md - git commit -m "release: version $(cat DotnetTestLib/VERSION) 🚀" - echo "creating git tag : $(cat DotnetTestLib/VERSION)" - git tag $(cat DotnetTestLib/VERSION) + echo $new_version > DotnetTestLib/VERSION + git commit -m "release: version $new_version 🚀" + echo "creating git tag : $new_version" + git tag $new_version git push -u origin HEAD --tags echo "Gitea Actions will detect the new tag and release the new version." else diff --git a/DotnetTestLib/VERSION b/DotnetTestLib/VERSION index 04c5555..0ea3a94 100644 --- a/DotnetTestLib/VERSION +++ b/DotnetTestLib/VERSION @@ -1 +1 @@ -0.1.17 +0.2.0 diff --git a/Makefile b/Makefile index 5fb9342..ab6fe09 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,7 @@ clean: issetup ## Clean unused files. .PHONY: release release: issetup ## Create a new tag for release. @echo "WARNING: This operation will create a version tag and push to gitea" - . ./.gitea/conventional_commits/generate-version.sh + ./.gitea/conventional_commits/generate-version.sh .PHONY: docs docs: issetup ## Build the documentation.