Skip to content

Commit b6983a8

Browse files
committed
[ci] Fix github-releases-api script to preserve the tag_name
Obviously, when updating the release to add the release notes, the tag_name gets lost, resulting in github creating a "untagged_xyz" tag and not connecting the release to the correct tag, although the commit matches.
1 parent b5f375e commit b6983a8

File tree

2 files changed

+43
-27
lines changed

2 files changed

+43
-27
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ env:
3232
- secure: "ICbAc4rTINnujJdt/caFPEOwrtAKmFd+DGxlE0Hukn2WGUxrci5lvBU6LXoECS26yVApVzV8iYaz4IEz9n3EVc+VmzSpw+qmBBKmlfZBrfavtQpXoyXiXU/3eEc2sLRQtf5rc1nKZuIFQ6Y3MR5u1SFMFrMTiFqYKaXVRr/o93xoKILYoZkZ4aNu5OSNMtQ45PJKblxqf7fMxe/HHrKg9mTmpxJ/C4AA2kcRPCVLfPf9J5lKqor3GwVIrExUU1aJJlJtwtK8Uz5nSAHjNOA4RZ6qjVtkTKBIfbvaaPf42QwejUYf5M+WEXsTWLBpIKHetSus7ajzpv9SvbPHmxIDQPw9nRinZV2c206ublYQf3UCXJtm3RU8XbOLFUkTXEKjvw06i29lUojFsHqs0QA6xkY1tdIXILOgcb0t2sDGGhY5jE9TlANfOAVtHt5sNRVetCk1JA5RZXFfJz8umxkfyAbm/taVvI9aM48RhqO4iMygNwjVrOfAWOaT/x39e2Ra0ESrT1Z/czT0yHU4R6p+jOByncE6lnhOVFmRPb55Jz5l4WI2OIs0NZcFbYUVAEchJqg2aeER8Oi00339Y40/DofSiurp+pcWoftdzg1Xd1KShuv0caKLQf0NkSTiLO6ZL4vAb0fKV31m2jkJAmfR9cBObzf60V0uvIMaW8GNbhY="
3333
- secure: "PTDtuuVBQ+AwxfJ/H+eSsgPN2TZCVvr8EbZmF74ZA1mRSue8NAY4QiHcNqnnt8Shw2gDiWJ4MB0jNcSiHYi66iw5nSy8gmwJAy1eU9Scs5YikGLzHS2Pc2Vs/WzTKfVExmGpfw6xVxXufBGGKSHsTus1NFD69xGJ1RNjske0o9DF9VT244EoMEIRwaC9aoEVJ6N0Ns97kwXhX+abMKWS769pz7HhbfqKiVEgjdJ/3lIWtQEU30sV25QdI0F9UToL81usC6lWiXfw1sfzHttK9DIjjb2UGpfIsv2DqLuH9eRzAeXwFr7qsYycFHEhRlehW8wbwmvf50zKJfQq/Q5qKcs1aU4GnRaIcA2BE7kyV1jpLFqQTpOix0ZKKfIssUsWL5kstONN6DSEmG/t/6HxoBV/QHRyzv5lz2nLcT3LTi2V0Pq457ZejjK4Gtqbbr+4QBKOKf3GMULg9sWiv8gnwiwgPNtZYY4J8lU1xO7bvXU8RaKv44vPXXxRc6+11DhhIcD2ywW8LFNNFbFQsE2gxJktA+WCpprMywGZLdQ1k9+ZUbfTWV3A5JP4a0sQ5tr4KYj103Gdmux2GuU2rVv29ZKNpOR3pC+FnOXSm3Ft1Pkfxdt3sZ3twf2A7LScZAExcCuQdfU6QxPgbP3Gogpu/rgQSujGxOY17H++8Avrcbg="
3434
- secure: "AvIBknS8rA2zQEZHrhryI/yECOR4qly2VbyFxst0TQiaWcBpIqAbFFAyWqb+OL9IwEZJV1iuThkD7UNHu4/Bi6+lYTFbnfZhQz5xwSzuBF94H65THcJVLA5OLpulPuGvHQqhGHSNoqMYByxIIuYf9z1NW27lXC7vwGkQyzZVV22ch2UEyr3xYAe1g3VeE1P8UxT7g/gsciwnK/yeBD/cdjzZhD7Zb9PrFxjvGbYpFIjmM1pMcREyDk2Q76G1RUL24CqiVHucOTX4C3NIZ3h7VO95irv802s0yI7nzqGe5NdBHVl8EdD5Ztf4svn0xmUskE6LrYihkUWakCEcsROu+CMtcLguRHoiGp/jQ6ZmuFanHzBjyk3kFGm5ZtZ4bckJGuz7M+P0WQY3l97dvSW6gKKbOWzJyIqB7nZcpJuU2NQY51ylzx5lFEeAMFl0LnBvO+DyIedu/2wfBkZC65L4EScbyGMzGdK6gwOrvfmd6qf6iE62keFSEcvEYK+RMj6FsDeNdjodr4Cuasc4y6xCLh3VztHR9EyxO2UMGJod2AOK09S1hFCEQh1CUNLdLrbtHQMdmehX+WL5g024BQmm6Jj94k+BB/Oxaz3hKfJnfFJfZLt8WpRpxxiKgSLS4PQHe5qyH3McRmUHraf01MfDwbZqsMCr1Ulnqu7p2qo/AxY="
35+
- GITHUB_BASE_URL=https://api.github.com/repos/pmd/pmd-eclipse-plugin
3536

3637
# Secure Keys, that need to be set for snapshot builds
3738
#
@@ -43,5 +44,6 @@ env:
4344
# BINTRAY_USER
4445
# BINTRAY_APIKEY
4546
# GITHUB_OAUTH_TOKEN
47+
# GITHUB_BASE_URL - the api url to use for github releases - does not need to be secure (https://api.github.com/repos/pmd/pmd-eclipse-plugin)
4648
#
4749

.travis/github-releases-api.sh

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#
22
# The functions here require the following scripts:
3-
# .travis/logger.sh
3+
# logger.sh
44
#
55
# The functions here require the following environment variables:
66
# GITHUB_OAUTH_TOKEN
7+
# GITHUB_BASE_URL
78
#
89

910
#
@@ -20,23 +21,23 @@ function gh_releases_createDraftRelease() {
2021

2122
log_debug "$FUNCNAME: Creating new draft release for tag=$tagName and commit=$targetCommitish"
2223

23-
local request=$(cat <<EOF
24-
{
25-
"tag_name": "${tagName}",
26-
"target_commitish": "${targetCommitish}",
27-
"name": "${tagName}",
28-
"draft": true
29-
}
30-
EOF
24+
local request=$(cat <<-EOF
25+
{
26+
"tag_name": "${tagName}",
27+
"target_commitish": "${targetCommitish}",
28+
"name": "${tagName}",
29+
"draft": true
30+
}
31+
EOF
3132
)
3233

33-
log_debug "POST https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases"
34+
log_debug "POST $GITHUB_BASE_URL/releases"
3435
log_info "Creating github draft release"
3536
RESULT=$(curl --fail -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" \
3637
-H "Content-Type: application/json" \
3738
-X POST \
3839
--data "${request}" \
39-
"https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases")
40+
"$GITHUB_BASE_URL/releases")
4041
log_debug " -> response: $RESULT"
4142

4243
log_success "Created draft release with id $(echo $RESULT | jq --raw-output ".url")"
@@ -53,9 +54,9 @@ EOF
5354
#
5455
function gh_releases_getLatestDraftRelease() {
5556
log_debug "$FUNCNAME"
56-
log_debug "GET https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases?per_page=1"
57+
log_debug "GET $GITHUB_BASE_URL/releases?per_page=1"
5758
RESULT=$(curl --fail -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" \
58-
"https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases?per_page=1" | jq ".[0]")
59+
"$GITHUB_BASE_URL/releases?per_page=1" | jq ".[0]")
5960
log_debug " -> response: $RESULT"
6061
local draft=$(echo $RESULT | jq ".draft")
6162
if [ "$draft" != "true" ]; then
@@ -77,12 +78,12 @@ function gh_release_deleteRelease() {
7778
gh_release_getIdFromData "$release"
7879
local releaseId="$RESULT"
7980
log_debug "$FUNCNAME id=$releaseId"
80-
log_debug "DELETE https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases/$releaseId"
81+
log_debug "DELETE $GITHUB_BASE_URL/releases/$releaseId"
8182
log_info "Deleting github release $releaseId"
8283
local response
8384
response=$(curl --fail -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" \
8485
-X DELETE \
85-
"https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases/$releaseId")
86+
"$GITHUB_BASE_URL/releases/$releaseId")
8687
log_debug " -> response: $response"
8788
log_success "Deleted release with id $releaseId"
8889
}
@@ -98,6 +99,17 @@ function gh_release_getIdFromData() {
9899
RESULT=$(echo $release | jq --raw-output ".id")
99100
}
100101

102+
#
103+
# Determines the tag_name from the given JSON release data.
104+
#
105+
# RESULT = "the tag name"
106+
#
107+
function gh_release_getTagNameFromData() {
108+
local release="$1"
109+
110+
RESULT=$(echo $release | jq --raw-output ".tag_name")
111+
}
112+
101113
#
102114
# Uploads a asset to an existing release.
103115
#
@@ -141,30 +153,33 @@ function gh_release_updateRelease() {
141153

142154
gh_release_getIdFromData "$release"
143155
local releaseId="$RESULT"
144-
log_debug "$FUNCNAME releaseId=$releaseId name=$name"
156+
gh_release_getTagNameFromData "$release"
157+
local tagName="$RESULT"
158+
log_debug "$FUNCNAME releaseId=$releaseId name=$name tag_name=$tagName"
145159

146160
body="${body//'\'/\\\\}"
147161
body="${body//$'\r'/}"
148162
body="${body//$'\n'/\\r\\n}"
149163
body="${body//'"'/\\\"}"
150164

151-
local request=$(cat <<EOF
152-
{
153-
"name": "${name}",
154-
"body": "${body}"
155-
}
156-
EOF
165+
local request=$(cat <<-EOF
166+
{
167+
"tag_name": "${tagName}",
168+
"name": "${name}",
169+
"body": "${body}"
170+
}
171+
EOF
157172
)
158173

159-
log_debug "PATCH https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases/${releaseId}"
174+
log_debug "PATCH $GITHUB_BASE_URL/releases/${releaseId}"
160175
log_debug " -> request: $request"
161176
log_info "Updating github release $releaseId"
162177
local response
163178
response=$(curl --fail -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" \
164179
-H "Content-Type: application/json" \
165180
--data "${request}" \
166181
-X PATCH \
167-
"https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases/${releaseId}")
182+
"$GITHUB_BASE_URL/releases/${releaseId}")
168183
log_debug " -> response: $response"
169184
log_success "Updated release with id=$releaseId"
170185
}
@@ -184,17 +199,16 @@ function gh_release_publishRelease() {
184199
log_debug "$FUNCNAME releaseId=$releaseId"
185200

186201
local request='{"draft":false}'
187-
log_debug "PATCH https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases/${releaseId}"
202+
log_debug "PATCH $GITHUB_BASE_URL/releases/${releaseId}"
188203
log_debug " -> request: $request"
189204
log_info "Publishing github release $releaseId"
190205
local response
191206
response=$(curl --fail -s -H "Authorization: token ${GITHUB_OAUTH_TOKEN}" \
192207
-H "Content-Type: application/json" \
193208
--data "${request}" \
194209
-X PATCH \
195-
"https://api.github.com/repos/pmd/pmd-eclipse-plugin/releases/${releaseId}")
210+
"$GITHUB_BASE_URL/releases/${releaseId}")
196211
log_debug " -> response: $response"
197212
local htmlUrl=$(echo "$response" | jq --raw-output ".html_url")
198213
log_success "Published release with id=$releaseId at $htmlUrl"
199214
}
200-

0 commit comments

Comments
 (0)