git-secret/.ci/github_release_script.sh
2021-05-04 13:01:41 +03:00

42 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# https://github.com/travis-ci/dpl/issues/155
# https://gist.github.com/Jaskaranbir/d5b065173b3a6f164e47a542472168c1
LAST_RELEASE_TAG=$(curl "https://api.github.com/repos/${TRAVIS_REPO_SLUG}/releases/latest" 2>/dev/null | jq .name | sed 's/"//g')
echo "LAST_RELEASE_TAG=$LAST_RELEASE_TAG"
# An automatic changelog generator
gem install github_changelog_generator
# move the manual log out of the way else it will be used by the tool.
rm CHANGELOG.md
# Generate CHANGELOG.md
github_changelog_generator \
-u "$(cut -d "/" -f1 <<< "$TRAVIS_REPO_SLUG")" \
-p "$(cut -d "/" -f2 <<< "$TRAVIS_REPO_SLUG")" \
--token "$GITHUB_OAUTH_TOKEN" \
--since-tag "$LAST_RELEASE_TAG"
body="$(cat CHANGELOG.md)"
# GitHub API needs json data. here we use the mighty jq from https://stedolan.github.io/jq/
jq -n \
--arg body "$body" \
--arg name "$TRAVIS_TAG" \
--arg tag_name "$TRAVIS_TAG" \
--arg target_commitish "$GIT_BRANCH" \
'{
body: $body,
name: $name,
tag_name: $tag_name,
target_commitish: $target_commitish,
draft: true,
prerelease: false
}' > CHANGELOG.md
echo "Create release $TRAVIS_TAG for repo: $TRAVIS_REPO_SLUG, branch: $GIT_BRANCH"
curl -H "Authorization: token $GITHUB_OAUTH_TOKEN" --data @CHANGELOG.md "https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases"