Skip to content

Commit e9b814f

Browse files
committed
Fix invalid changelog multiline format
1 parent 6f4f3f9 commit e9b814f

File tree

2 files changed

+30
-27
lines changed

2 files changed

+30
-27
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
steps:
1515
- name: Check out repository
16-
uses: actions/checkout@v3
16+
uses: actions/checkout@v4
1717
with:
1818
fetch-depth: 0 # Fetch all history so we can access tags and commits
1919
fetch-tags: true # Ensure tags are fetched

release.sh

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,20 @@ fi
3838

3939
# Exit early if no code changes and WordPress version hasn't changed
4040
if [[ "$CODE_CHANGED" == false && "$WP_VERSION_CHANGED" == false ]]; then
41-
echo "### :no_good_woman: Didn't update versions :no_good:" >> $GITHUB_STEP_SUMMARY
42-
echo "" >> $GITHUB_STEP_SUMMARY
43-
echo "Stopped because there are no changes since the last release." >> $GITHUB_STEP_SUMMARY
41+
echo "### :no_good_woman: Didn't update versions :no_good:" >> "$GITHUB_STEP_SUMMARY"
42+
echo "" >> "$GITHUB_STEP_SUMMARY"
43+
echo "Stopped because there are no changes since the last release." >> "$GITHUB_STEP_SUMMARY"
4444
echo "No changes detected. Exiting..."
4545
exit 0
4646
fi
4747

4848
# Increment the STABLE_TAG value
4949
STABLE_TAG=$(echo "$PREVIOUS_STABLE_TAG" | awk -F. '{$NF+=1} 1' OFS='.')
5050

51-
echo "### :rocket: Updated versions :rocket:" >> $GITHUB_STEP_SUMMARY
52-
echo "" >> $GITHUB_STEP_SUMMARY
53-
echo "- New stable tag: $STABLE_TAG (was $PREVIOUS_STABLE_TAG)" >> $GITHUB_STEP_SUMMARY
54-
echo "- New WordPress version: $TESTED_UP_TO (was $CONFIG_TESTED_UP_TO)" >> $GITHUB_STEP_SUMMARY
51+
echo "### :rocket: Updated versions :rocket:" >> "$GITHUB_STEP_SUMMARY"
52+
echo "" >> "$GITHUB_STEP_SUMMARY"
53+
echo "- New stable tag: $STABLE_TAG (was $PREVIOUS_STABLE_TAG)" >> "$GITHUB_STEP_SUMMARY"
54+
echo "- New WordPress version: $TESTED_UP_TO (was $CONFIG_TESTED_UP_TO)" >> "$GITHUB_STEP_SUMMARY"
5555

5656
# Use sed to replace the version lines in some files
5757
sed -i -e "s/^Tested up to: [0-9.]*$/Tested up to: $TESTED_UP_TO/" \
@@ -74,20 +74,17 @@ fi
7474
# Add commit messages to changelog if there are code changes
7575
if [[ "$CODE_CHANGED" == true ]]; then
7676
CHANGELOG_ENTRY=$(printf "%s\n* Changes:" "$CHANGELOG_ENTRY")
77-
while IFS= read -r line; do
78-
CHANGELOG_ENTRY=$(printf "%s\n%s" "$CHANGELOG_ENTRY" "$line")
79-
done < <(echo "$COMMITS_SINCE_TAG")
77+
CHANGELOG_ENTRY=$(printf "%s\n%s" "$CHANGELOG_ENTRY" "$COMMITS_SINCE_TAG")
8078
fi
8179

8280
# Insert the new changelog entry below the line "== Changelog =="
83-
awk '
84-
/== Changelog ==/ {
85-
print $0
86-
print ""
87-
printf "%s\n", ENVIRON["CHANGELOG_ENTRY"]
88-
next
89-
}
90-
{ print }' readme.txt > readme.txt.tmp && mv readme.txt.tmp readme.txt
81+
awk -v changelog="$CHANGELOG_ENTRY" '
82+
/== Changelog ==/ {
83+
print $0 "\n"
84+
print changelog "\n"
85+
next
86+
}
87+
{ print }' readme.txt > readme.txt.tmp && mv readme.txt.tmp readme.txt
9188

9289
# Update the config.json file
9390
echo "{
@@ -108,11 +105,17 @@ fi
108105

109106
RELEASE_BODY="$CHANGELOG_ENTRY"
110107

111-
# Output to GitHub Actions
112-
echo "tested-up-to=$TESTED_UP_TO" >> $GITHUB_OUTPUT
113-
echo "stable-tag=$STABLE_TAG" >> $GITHUB_OUTPUT
114-
echo "has-changed=true" >> $GITHUB_OUTPUT
115-
echo "code-changed=$CODE_CHANGED" >> $GITHUB_OUTPUT
116-
echo "wp-version-changed=$WP_VERSION_CHANGED" >> $GITHUB_OUTPUT
117-
echo "release-name=$RELEASE_NAME" >> $GITHUB_OUTPUT
118-
echo "release-body=$RELEASE_BODY" >> $GITHUB_OUTPUT
108+
# Output to GitHub Actions using the multiline syntax
109+
echo "tested-up-to=$TESTED_UP_TO" >> "$GITHUB_OUTPUT"
110+
echo "stable-tag=$STABLE_TAG" >> "$GITHUB_OUTPUT"
111+
echo "has-changed=true" >> "$GITHUB_OUTPUT"
112+
echo "code-changed=$CODE_CHANGED" >> "$GITHUB_OUTPUT"
113+
echo "wp-version-changed=$WP_VERSION_CHANGED" >> "$GITHUB_OUTPUT"
114+
115+
# Output RELEASE_NAME (in case it contains special characters)
116+
echo "release-name=$RELEASE_NAME" >> "$GITHUB_OUTPUT"
117+
118+
# Output RELEASE_BODY using the multiline syntax
119+
echo "release-body<<EOF" >> "$GITHUB_OUTPUT"
120+
echo "$RELEASE_BODY" >> "$GITHUB_OUTPUT"
121+
echo "EOF" >> "$GITHUB_OUTPUT"

0 commit comments

Comments
 (0)