From 3aa658168d86ada336ee7f11ad3d5efa9688ff64 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 8 Oct 2020 15:24:34 +0600 Subject: [PATCH] add changelog and github release tools --- build.gradle | 2 ++ changelog_parser.sh | 24 ++++++++++++++++++++++++ github_release.gradle | 27 +++++++++++++++++++++++++++ gradle.properties | 2 ++ 4 files changed, 55 insertions(+) create mode 100644 changelog_parser.sh create mode 100644 github_release.gradle diff --git a/build.gradle b/build.gradle index bf12439..12fbab6 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,7 @@ buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:$gradle_bintray_plugin_version" + classpath "com.github.breadmoirai:github-release:$github_release_plugin_version" } } @@ -20,6 +21,7 @@ project.version = "0.3.1" project.group = "com.insanusmokrassar" apply from: "publish.gradle" +apply from: "github_release.gradle" repositories { mavenLocal() diff --git a/changelog_parser.sh b/changelog_parser.sh new file mode 100644 index 0000000..8980f88 --- /dev/null +++ b/changelog_parser.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +function parse() { + version=$1 + + while IFS= read -r line && [ -z "`echo $line | grep -e "^#\+ $version"`" ] + do + : # do nothing + done + + while IFS= read -r line && [ -z "`echo $line | grep -e "^#\+"`" ] + do + echo "$line" + done +} + +version=$1 +file=$2 + +if [ -n "$file" ]; then + parse $version < "$file" +else + parse $version +fi diff --git a/github_release.gradle b/github_release.gradle new file mode 100644 index 0000000..94284ee --- /dev/null +++ b/github_release.gradle @@ -0,0 +1,27 @@ +private String getCurrentVersionChangelog() { + OutputStream changelogDataOS = new ByteArrayOutputStream() + exec { + standardOutput = changelogDataOS + commandLine './changelog_info_retriever', "$library_version", 'CHANGELOG.md' + } + + return changelogDataOS.toString().trim() +} + +if (new File(projectDir, "secret.gradle").exists()) { + apply from: './secret.gradle' + apply plugin: "com.github.breadmoirai.github-release" + + githubRelease { + token "${project.property('GITHUB_RELEASE_TOKEN')}" + + owner "InsanusMokrassar" + repo "${rootProject.name}" + + tagName "$library_version" + releaseName "$library_version" + targetCommitish "$library_version" + + body getCurrentVersionChangelog() + } +} diff --git a/gradle.properties b/gradle.properties index 7a911fa..ee22be6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,6 @@ gradle_bintray_plugin_version=1.8.5 klockVersion=1.12.1 +github_release_plugin_version=2.2.12 + kotlin.incremental.multiplatform=true