@@ -11,33 +11,33 @@ jobs:
1111 permissions :
1212 contents : write
1313 pull-requests : read
14-
14+
1515 steps :
1616 - name : Checkout code
1717 uses : actions/checkout@v5
1818 with :
1919 fetch-depth : 0
2020 persist-credentials : false
21-
21+
2222 - name : Extract tag information
2323 id : tag_info
2424 run : |
2525 TAG=${GITHUB_REF#refs/tags/}
2626 echo "tag=$TAG" >> $GITHUB_OUTPUT
27-
27+
2828 IFS='/' read -ra PARTS <<< "$TAG"
2929 NAMESPACE="${PARTS[1]}"
3030 MODULE="${PARTS[2]}"
3131 VERSION="${PARTS[3]}"
32-
32+
3333 echo "namespace=$NAMESPACE" >> $GITHUB_OUTPUT
3434 echo "module=$MODULE" >> $GITHUB_OUTPUT
3535 echo "version=$VERSION" >> $GITHUB_OUTPUT
3636 echo "module_path=registry/$NAMESPACE/modules/$MODULE" >> $GITHUB_OUTPUT
37-
37+
3838 RELEASE_TITLE="$NAMESPACE/$MODULE $VERSION"
3939 echo "release_title=$RELEASE_TITLE" >> $GITHUB_OUTPUT
40-
40+
4141 - name : Find previous tag
4242 id : prev_tag
4343 env :
@@ -46,15 +46,15 @@ jobs:
4646 CURRENT_TAG : ${{ steps.tag_info.outputs.tag }}
4747 run : |
4848 PREV_TAG=$(git tag -l "release/$NAMESPACE/$MODULE/v*" | sort -V | grep -B1 "$CURRENT_TAG" | head -1)
49-
49+
5050 if [ -z "$PREV_TAG" ] || [ "$PREV_TAG" = "$CURRENT_TAG" ]; then
5151 echo "No previous tag found, using initial commit"
5252 PREV_TAG=$(git rev-list --max-parents=0 HEAD)
5353 fi
54-
54+
5555 echo "prev_tag=$PREV_TAG" >> $GITHUB_OUTPUT
5656 echo "Previous tag: $PREV_TAG"
57-
57+
5858 - name : Generate changelog
5959 id : changelog
6060 env :
@@ -64,15 +64,15 @@ jobs:
6464 CURRENT_TAG : ${{ steps.tag_info.outputs.tag }}
6565 run : |
6666 echo "Generating changelog for $MODULE_PATH between $PREV_TAG and $CURRENT_TAG"
67-
67+
6868 COMMITS=$(git log --oneline --no-merges "$PREV_TAG..$CURRENT_TAG" -- "$MODULE_PATH")
69-
69+
7070 if [ -z "$COMMITS" ]; then
7171 echo "No commits found for this module"
7272 echo "changelog=No changes found for this module." >> $GITHUB_OUTPUT
7373 exit 0
7474 fi
75-
75+
7676 if [[ "$PREV_TAG" == release/* ]]; then
7777 FULL_CHANGELOG=$(gh api repos/:owner/:repo/releases/generate-notes \
7878 --field tag_name="$CURRENT_TAG" \
@@ -82,11 +82,11 @@ jobs:
8282 echo "New module detected, skipping GitHub API"
8383 FULL_CHANGELOG=""
8484 fi
85-
85+
8686 MODULE_COMMIT_SHAS=$(git log --format="%H" --no-merges "$PREV_TAG..$CURRENT_TAG" -- "$MODULE_PATH")
87-
87+
8888 FILTERED_CHANGELOG="## What's Changed\n\n"
89-
89+
9090 for sha in $MODULE_COMMIT_SHAS; do
9191 SHORT_SHA=${sha:0:7}
9292
@@ -100,11 +100,11 @@ jobs:
100100 FILTERED_CHANGELOG="${FILTERED_CHANGELOG}* $COMMIT_MSG by @$AUTHOR\n"
101101 fi
102102 done
103-
103+
104104 echo "changelog<<EOF" >> $GITHUB_OUTPUT
105105 echo -e "$FILTERED_CHANGELOG" >> $GITHUB_OUTPUT
106106 echo "EOF" >> $GITHUB_OUTPUT
107-
107+
108108 - name : Create Release
109109 env :
110110 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -114,4 +114,4 @@ jobs:
114114 run : |
115115 gh release create "$TAG_NAME" \
116116 --title "$RELEASE_TITLE" \
117- --notes "$CHANGELOG"
117+ --notes "$CHANGELOG"
0 commit comments