Skip to content

Commit

Permalink
Add script to update release tracker on pr merge (#254)
Browse files Browse the repository at this point in the history
Signed-off-by: Tamal Saha <tamal@appscode.com>
  • Loading branch information
tamalsaha committed Jun 17, 2020
1 parent bb1290d commit 6b8d214
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 0 deletions.
36 changes: 36 additions & 0 deletions .github/workflows/release-tracker.yml
@@ -0,0 +1,36 @@
name: release-tracker

on:
pull_request:
types: [closed]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1

- name: Prepare git
env:
GITHUB_USER: 1gtm
GITHUB_TOKEN: ${{ secrets.LGTM_GITHUB_TOKEN }}
run: |
git config --global user.name "${GITHUB_USER}"
git config --global user.email "${GITHUB_USER}@appscode.com"
git remote set-url origin https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git
- name: Install GitHub CLI
run: |
curl -fsSL https://github.com/github/hub/raw/master/script/get | bash -s 2.14.1
sudo mv bin/hub /usr/local/bin
- name: Update release tracker
if: |
github.event.action == 'closed' &&
github.event.pull_request.merged == true
env:
GITHUB_USER: 1gtm
GITHUB_TOKEN: ${{ secrets.LGTM_GITHUB_TOKEN }}
run: |
./hack/scripts/update-release-tracker.sh
66 changes: 66 additions & 0 deletions hack/scripts/update-release-tracker.sh
@@ -0,0 +1,66 @@
#!/bin/bash

# Copyright The KubeDB Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -eou pipefail

# ref: https://gist.github.com/joshisa/297b0bc1ec0dcdda0d1625029711fa24
parse_url() {
proto="$(echo $1 | grep :// | sed -e's,^\(.*://\).*,\1,g')"
# remove the protocol
url="$(echo ${1/$proto/})"

IFS='/' # / is set as delimiter
read -ra PARTS <<<"$url" # str is read into an array as tokens separated by IFS
if [ ${PARTS[0]} != 'github.com' ] || [ ${#PARTS[@]} -ne 5 ]; then
echo "failed to parse relase-tracker: $url"
exit 1
fi
export RELEASE_TRACKER_OWNER=${PARTS[1]}
export RELEASE_TRACKER_REPO=${PARTS[2]}
export RELEASE_TRACKER_PR=${PARTS[4]}
}

RELEASE_TRACKER=

while IFS=$': \t' read -r -u9 marker v; do
case $marker in
Release-tracker)
export RELEASE_TRACKER=$v
;;
Release)
export RELEASE=$v
;;
esac
done 9< <(git show -s --format=%b)

[ ! -z $RELEASE_TRACKER ] || {
echo "Release-tracker url not found."
exit 0
}

parse_url $RELEASE_TRACKER
api_url="repos/${RELEASE_TRACKER_OWNER}/${RELEASE_TRACKER_REPO}/issues/${RELEASE_TRACKER_PR}/comments"

case $GITHUB_BASE_REF in
master)
msg="/ready-to-tag github.com/${GITHUB_REPOSITORY} ${GITHUB_SHA}"
;;
*)
msg="/cherry-picked github.com/${GITHUB_REPOSITORY} ${GITHUB_BASE_REF} ${GITHUB_SHA}"
;;
esac

hub api "$api_url" -f body="$msg"

0 comments on commit 6b8d214

Please sign in to comment.