You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
git-secret/.ci/github_release_script.sh

42 lines
1.3 KiB
Bash

#!/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"