From 8572fdb58bac8d5c83082d9fb873b64cdb96e4be Mon Sep 17 00:00:00 2001 From: subhamkrai Date: Tue, 3 Aug 2021 17:07:01 +0530 Subject: [PATCH] ci: create tag and print release notes since we moved to github action for the release, we maunally have to push the tag to build image. with this change, first, this action will set some environment variable which will be consume by the script to print release notes. then, it will ask for 1 input from github UI(in Action tab) tag: where we'll give the tag for the release after creating tag it will run the script and print release notes. **NOTE** please verify the environment var and release notes after the successful action run. . Signed-off-by: subhamkrai --- .github/workflows/create-tag.yaml | 42 ++++++++++++++++++++++++++++++ tests/scripts/gen_release_notes.sh | 24 +++-------------- 2 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/create-tag.yaml diff --git a/.github/workflows/create-tag.yaml b/.github/workflows/create-tag.yaml new file mode 100644 index 000000000..53ddd7f83 --- /dev/null +++ b/.github/workflows/create-tag.yaml @@ -0,0 +1,42 @@ +name: Tag +on: + workflow_dispatch: + inputs: + version: + description: 'Release version (e.g. v1.7.0)' + required: true + +defaults: + run: + # reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell + shell: bash --noprofile --norc -eo pipefail -x {0} + +jobs: + Create-Tag: + runs-on: ubuntu-18.04 + if: {{ github.repository == 'rook/rook' }} + steps: + - name: checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: set env + run: | + echo "FROM_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV + echo "TO_TAG=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV + echo "GITHUB_USER=rook" >> $GITHUB_ENV + + - name: Create Tag + uses: negz/create-tag@v1 + with: + version: ${{ github.event.inputs.version }} + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Get Release Note + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_USER: ${{ env.GITHUB_USER }} + FROM_BRANCH: ${{ env.FROM_BRANCH }} + TO_TAG: ${{ env.TO_TAG }} + run: tests/scripts/gen_release_notes.sh diff --git a/tests/scripts/gen_release_notes.sh b/tests/scripts/gen_release_notes.sh index 0d0b6a444..ac4ad99ac 100755 --- a/tests/scripts/gen_release_notes.sh +++ b/tests/scripts/gen_release_notes.sh @@ -3,32 +3,14 @@ set -e function help() { print=" - suppose we want release note for v1.6.8, we'll check the list of pr merged in upstream/release-1.6 but not present in v1.6.7 - EXAMPLE command: - ./tests/scripts/gen_release_notes.sh /release-1.6 v1.6.7 + To run this command, + 1. verify you are selecting right branch from GitHub UI dropdown menu + 2. enter the tag you want to create " echo "$print" exit 1 } -FROM_BRANCH=$1 # example branch name, "upstream/release-1.6" -TO_TAG=$2 # example tag, "v1.6.7" - -if [[ $# -ne 2 ]]; then - echo "requires exactly 2 arguments" - help -fi - -REMOTE=$(git remote show $(echo $1 | cut -d / -f1)|grep -oh $(echo $1 | cut -d / -f2-)|uniq >/dev/null 2>&1) -if ! $REMOTE ; then - echo "remote doesn't exist" $REMOTE - exit 1 -fi - -if ! git show-ref --tags $2 -q; then - echo "tag doesn't exist" $2 -fi - if [ -z "${GITHUB_USER}" ] || [ -z "${GITHUB_TOKEN}" ]; then echo "requires both GITHUB_USER and GITHUB_TOKEN to be set as env variable" help