@@ -38,11 +38,11 @@ jobs:
3838 latest() { gh release --repo "$1" view --json tagName --jq .tagName; }
3939 # Get latest natscli release
4040 RELEASE_NATSCLI="$(latest nats-io/natscli)"
41- echo " release_natscli=$RELEASE_NATSCLI" >> $GITHUB_OUTPUT
41+ echo >> "$GITHUB_OUTPUT" " release_natscli=$RELEASE_NATSCLI"
4242
4343 # Get latest nsc release
4444 RELEASE_NSC="$(latest nats-io/nsc)"
45- echo " release_nsc=$RELEASE_NSC" >> $GITHUB_OUTPUT
45+ echo >> "$GITHUB_OUTPUT" " release_nsc=$RELEASE_NSC"
4646
4747 echo "Latest natscli release: $RELEASE_NATSCLI"
4848 echo "Latest nsc release: $RELEASE_NSC"
5555 CURRENT_NATSCLI=$(sed -n 's/^VERSION_stable_nats=//p' < synadia-nats-channels.conf)
5656 CURRENT_NSC=$(sed -n 's/^VERSION_stable_nsc=//p' < synadia-nats-channels.conf)
5757
58- echo " current_natscli=$CURRENT_NATSCLI" >> $GITHUB_OUTPUT
59- echo " current_nsc=$CURRENT_NSC" >> $GITHUB_OUTPUT
58+ echo >> "$GITHUB_OUTPUT" " current_natscli=$CURRENT_NATSCLI"
59+ echo >> "$GITHUB_OUTPUT" " current_nsc=$CURRENT_NSC"
6060
6161 echo "Current natscli version: $CURRENT_NATSCLI"
6262 echo "Current nsc version: $CURRENT_NSC"
@@ -71,20 +71,31 @@ jobs:
7171 shell : bash
7272 run : |
7373 UPDATED=false
74-
75- if [[ "$RELEASE_NATSCLI" != "$CURRENT_NATSCLI" ]]; then
76- echo "Updating natscli from $CURRENT_NATSCLI to $RELEASE_NATSCLI"
77- sed -i "s/^VERSION_stable_nats=.*/VERSION_stable_nats=$RELEASE_NATSCLI/" synadia-nats-channels.conf
74+ NL=$'\n'
75+ declare -a which_updated=()
76+ commit_message="Update NATS tool versions${NL}${NL}" # paragraph, title vs body
77+ pr_body_table=""
78+
79+ update_one() {
80+ local toolname="$1" config_name="$2" latest="$3" prior="$4"
81+ if [[ "$latest" == "$prior" ]]; then
82+ pr_body_table+="| ${toolname} | \`${prior}\` | (unchanged) |$NL"
83+ return
84+ fi
85+ echo "Updating $toolname from $prior to $latest"
86+ sed -i "s/^VERSION_stable_${config_name}=.*/VERSION_stable_${config_name}=${latest}/" synadia-nats-channels.conf
7887 UPDATED=true
79- fi
88+ which_updated+=("$toolname")
89+ commit_message+="- ${toolname}: ${prior} → ${latest}$NL"
90+ pr_body_table+="| ${toolname} | \`${prior}\` | \`${latest}\` |$NL"
91+ }
8092
81- if [[ "$RELEASE_NSC" != "$CURRENT_NSC" ]]; then
82- echo "Updating nsc from $CURRENT_NSC to $RELEASE_NSC"
83- sed -i "s/^VERSION_stable_nsc=.*/VERSION_stable_nsc=$RELEASE_NSC/" synadia-nats-channels.conf
84- UPDATED=true
85- fi
93+ update_one natscli nats "$RELEASE_NATSCLI" "$CURRENT_NATSCLI"
94+ update_one nsc nsc "$RELEASE_NSC" "$CURRENT_NSC"
8695
87- echo "updated=$UPDATED" >> $GITHUB_OUTPUT
96+ echo >> "$GITHUB_OUTPUT" "updated=$UPDATED"
97+ echo >> "$GITHUB_OUTPUT" "which_tools=${which_updated[*]}"
98+ echo >> "$GITHUB_OUTPUT" "commit=$(jq -Mcnr --arg cm "$commit_message" --arg table "$pr_body_table" '.message=$cm | .pr_body_table=$table')"
8899
89100 - name : Create Pull Request
90101 if : steps.update_versions.outputs.updated == 'true'
@@ -93,19 +104,15 @@ jobs:
93104 token : ${{ secrets.GITHUB_TOKEN }}
94105
95106 commit-message : |
96- Update NATS tool versions
97-
98- - natscli: ${{ steps.check_current.outputs.current_natscli }} → ${{ steps.get_releases.outputs.release_natscli }}
99- - nsc: ${{ steps.check_current.outputs.current_nsc }} → ${{ steps.get_releases.outputs.release_nsc }}
107+ ${{ fromJSON(steps.update_versions.outputs.commit).message }}
100108
101- title : " Update NATS tool versions"
109+ title : " Update NATS tool versions: ${{ steps.update_versions.outputs.which_updated }} "
102110 body : |
103111 This PR updates the NATS tool versions in `synadia-nats-channels.conf` to the latest stable releases:
104112
105113 | Tool | Current | New |
106114 |------|---------|-----|
107- | natscli | `${{ steps.check_current.outputs.current_natscli }}` | `${{ steps.get_releases.outputs.release_natscli }}` |
108- | nsc | `${{ steps.check_current.outputs.current_nsc }}` | `${{ steps.get_releases.outputs.release_nsc }}` |
115+ ${{ fromJSON(steps.update_versions.outputs.commit).pr_body_table }}
109116
110117 **Release Notes:**
111118 - [natscli releases](https://github.com/nats-io/natscli/releases)
0 commit comments