You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2023/08/11 14:54:12 UTC
[uima-parent-pom] 01/01: Issue #59: Replace maven-changes-plugin with call to GH API to generate release notes
This is an automated email from the ASF dual-hosted git repository.
rec pushed a commit to branch refactoring/59-Replace-maven-changes-plugin-with-call-to-GH-API-to-generate-release-notes
in repository https://gitbox.apache.org/repos/asf/uima-parent-pom.git
commit ae5b3bb58eb440d8fee22d1d75d0bfaa64545728
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Fri Aug 11 16:54:05 2023 +0200
Issue #59: Replace maven-changes-plugin with call to GH API to generate release notes
- Added new profile that uses the gh CLI tool to generate release notes and writes them to issuesFixed/github-report.md
---
...es-report => marker-file-enabling-release-notes | 0
pom.xml | 95 ++++++++++++++++++++++
2 files changed, 95 insertions(+)
diff --git a/marker-file-enabling-changes-report b/marker-file-enabling-release-notes
similarity index 100%
rename from marker-file-enabling-changes-report
rename to marker-file-enabling-release-notes
diff --git a/pom.xml b/pom.xml
index c323433..9a65ae2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,6 +91,10 @@
</ciManagement>
<properties>
+ <github-repository>uima-parent-pom</github-repository>
+ <git-branch>main</git-branch>
+ <previous-release-version>16</previous-release-version>
+
<!-- *********************************************************************************************************** -->
<!-- U G H change manually for release (to remove -SNAPSHOT * -->
<!-- *********************************************************************************************************** -->
@@ -520,6 +524,20 @@
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.3.0</version>
</plugin>
+
+ <plugin>
+ <groupId>org.codehaus.gmaven</groupId>
+ <artifactId>groovy-maven-plugin</artifactId>
+ <version>2.1.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <version>3.0.18</version>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </plugin>
</plugins>
</pluginManagement>
@@ -976,6 +994,83 @@
</build>
</profile>
+ <!-- *********************************************** -->
+ <!-- * Generate release notes * -->
+ <!-- *********************************************** -->
+ <profile>
+ <id>generate-release-notes</id>
+ <activation>
+ <file>
+ <exists>marker-file-enabling-release-notes</exists>
+ </file>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>gh-generate-release-notes</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <exportAntProperties>true</exportAntProperties>
+ <target>
+ <echo level="info">Generating release notes using GitHub API via the gh CLI tool</echo>
+ <echo level="info">Repository : ${github-repository}</echo>
+ <echo level="info">New tag : ${project.artifactId}-${project.version}</echo>
+ <echo level="info">Old tag : rel/${project.artifactId}-${previous-release-version}</echo>
+ <echo level="info">Branch : ${git-branch}</echo>
+ <mkdir dir="issuesFixed"/>
+ <exec executable="gh" failonerror="true" outputproperty="gh-release-notes">
+ <arg value="api" />
+ <arg value="--method" />
+ <arg value="POST" />
+ <arg value="-H" />
+ <arg value="Accept: application/vnd.github+json" />
+ <arg value="-H" />
+ <arg value="X-GitHub-Api-Version: 2022-11-28" />
+ <arg value="/repos/apache/${github-repository}/releases/generate-notes" />
+ <arg value="-f" />
+ <arg value="tag_name=${project.artifactId}-${project.version}" />
+ <arg value="-f" />
+ <arg value="target_commitish=${git-branch}" />
+ <arg value="-f" />
+ <arg value="previous_tag_name=rel/${project.artifactId}-${previous-release-version}" />
+ </exec>
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.gmaven</groupId>
+ <artifactId>groovy-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <!-- Load postNoticeText from NOTICE file -->
+ <id>gh-store-release-notes</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source><![CDATA[
+ import groovy.json.JsonSlurper
+ def jsonSlurper = new JsonSlurper()
+ def json = jsonSlurper.parseText(project.properties['gh-release-notes'])
+ new File('issuesFixed/github-report.md').withWriter("UTF-8") { out -> out.write(json.body) }
+ ]]></source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
<!-- *********************************************** -->
<!-- * Generate changes report * -->
<!-- *********************************************** -->