diff options
author | Florian Zschocke <florian.zschocke@devolo.de> | 2020-01-30 22:13:10 +0100 |
---|---|---|
committer | Florian Zschocke <florian.zschocke@devolo.de> | 2020-01-30 22:13:10 +0100 |
commit | 77f5b7acbb259268e0e02e37a0bc2db99e9fb41f (patch) | |
tree | 986e07a0cc11f15e7cb94d76b5939a5216cc23f7 /build.xml | |
parent | bb5d1ef31e65a6160e4fa1302d0ee293d5c344ef (diff) | |
parent | 187f8e486ff4b71871bb682807f8068ef6c01001 (diff) | |
download | gitblit-77f5b7acbb259268e0e02e37a0bc2db99e9fb41f.tar.gz gitblit-77f5b7acbb259268e0e02e37a0bc2db99e9fb41f.zip |
Merge branch 'release-github' into master
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 244 |
1 files changed, 217 insertions, 27 deletions
@@ -27,7 +27,12 @@ <property name="project.src.dir" value="${basedir}/src/main/java" />
<property name="project.resources.dir" value="${basedir}/src/main/resources" />
<property name="project.distrib.dir" value="${basedir}/src/main/distrib" />
-
+
+ <!-- Tools -->
+ <property name="octokit" location="${basedir}/.github/ok.sh" />
+ <property name="relnoawk" location="${basedir}/src/site/templates/ghreleasenotes.awk" />
+
+
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Initialize Moxie and setup build properties
@@ -41,6 +46,8 @@ <mx:init verbose="no" mxroot="${moxie.dir}" />
<!-- Set Ant project properties -->
+ <property name="release.tag" value="v${project.version}" />
+ <property name="currentRelease.tag" value="v${project.releaseVersion}" />
<property name="release.name" value="gitblit-${project.version}"/>
<property name="distribution.zipfile" value="${release.name}.zip" />
<property name="distribution.tgzfile" value="${release.name}.tar.gz" />
@@ -50,9 +57,13 @@ <property name="authority.zipfile" value="authority-${project.version}.zip" />
<property name="gbapi.zipfile" value="gbapi-${project.version}.zip" />
<property name="maven.directory" value="${basedir}/../gitblit-maven" />
+ <property name="releaselog" value="${basedir}/releases.moxie" />
+
+ <!-- GitHub user/organization name -->
+ <property name="gh.org" value="fzs" />
<!-- Download links -->
- <property name="gc.url" value="http://dl.bintray.com/gitblit/releases/" />
+ <property name="gc.url" value="https://github.com/${gh.org}/gitblit/releases/download/" />
<!-- Report Java version -->
<echo>JDK version: ${ant.java.version}</echo>
@@ -480,9 +491,9 @@ </fileset>
</delete>
</target>
-
-
- <!--
+
+
+ <!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Build the Gitblit Website
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -491,11 +502,9 @@ <echo>Building Gitblit Website ${project.version}</echo>
- <property name="releaselog" value="${basedir}/releases.moxie" />
-
<!-- Build Site -->
- <mx:doc googleplusid="114464678392593421684" googleanalyticsid="UA-24377072-1"
- googlePlusOne="true" minify="true" customless="custom.less">
+ <mx:doc googleanalyticsid="UA-24377072-1"
+ minify="true" customless="custom.less">
<structure>
<menu name="about">
<page name="overview" src="siteindex.mkd" out="index.html" headerLinks="false" />
@@ -567,20 +576,21 @@ </menu>
<menu name="downloads">
- <link name="Gitblit GO (Windows)" src="${gc.url}gitblit-${project.releaseVersion}.zip" />
- <link name="Gitblit GO (Linux/OSX)" src="${gc.url}gitblit-${project.releaseVersion}.tar.gz" />
- <link name="Gitblit WAR" src="${gc.url}gitblit-${project.releaseVersion}.war" />
+ <link name="Gitblit GO (Windows)" src="${gc.url}${currentRelease.tag}/gitblit-${project.releaseVersion}.zip" />
+ <link name="Gitblit GO (Linux/OSX)" src="${gc.url}${currentRelease.tag}/gitblit-${project.releaseVersion}.tar.gz" />
+ <link name="Gitblit WAR" src="${gc.url}${currentRelease.tag}/gitblit-${project.releaseVersion}.war" />
<divider />
<link name="Gitblit GO (Docker)" src="https://registry.hub.docker.com/u/jmoger/gitblit/" />
<divider />
<link name="Plugins Registry" src="http://plugins.gitblit.com" />
<divider />
- <link name="Gitblit Manager" src="${gc.url}manager-${project.releaseVersion}.zip" />
- <link name="Federation Client" src="${gc.url}fedclient-${project.releaseVersion}.zip" />
+ <link name="Gitblit Manager" src="${gc.url}${currentRelease.tag}/manager-${project.releaseVersion}.zip" />
+ <link name="Federation Client" src="${gc.url}${currentRelease.tag}/fedclient-${project.releaseVersion}.zip" />
<divider />
- <link name="API Library" src="${gc.url}gbapi-${project.releaseVersion}.zip" />
+ <link name="API Library" src="${gc.url}${currentRelease.tag}/gbapi-${project.releaseVersion}.zip" />
<divider />
- <link name="Bintray (1.4.0+)" src="https://bintray.com/gitblit/releases/gitblit" />
+ <link name="GitHub (1.9.0+)" src="https://github.com/${gh.org}/gitblit/releases" />
+ <link name="Bintray (1.4.0-1.8.0)" src="https://bintray.com/gitblit/releases/gitblit" />
<link name="GoogleCode (pre-1.4.0)" src="https://code.google.com/p/gitblit/downloads/list?can=1" />
<divider />
<link name="Maven Repository" src="${project.mavenUrl}" />
@@ -606,7 +616,7 @@ <divider />
</structure>
- <replace token="%GCURL%" value="${gc.url}" />
+ <replace token="%GCURL%" value="${gc.url}${currentRelease.tag}/" />
<properties token="%PROPERTIES%" file="${project.distrib.dir}/data/defaults.properties" />
@@ -688,7 +698,7 @@ <!-- Build gh-pages branch -->
<mx:ghpages repositorydir="${basedir}" obliterate="true" />
</target>
-
+
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -731,7 +741,84 @@ </target>
-
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Publish binaries to GitHub release
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <target name="releaseBinaries" depends="prepare" description="Publish the Gitblit binaries to a GitHub release">
+
+ <ghReleaseDraft
+ releaselog="${releaselog}"
+ releasetag="${release.tag}"/>
+
+ <echo>Uploading Gitblit ${project.version} binaries</echo>
+
+ <!-- Upload Gitblit GO Windows ZIP file -->
+ <githubUpload
+ source="${project.targetDirectory}/${distribution.zipfile}"
+ target="gitblit-${project.version}.zip" />
+
+ <!-- Upload Gitblit GO Linux/Unix tar.gz file -->
+ <githubUpload
+ source="${project.targetDirectory}/${distribution.tgzfile}"
+ target="gitblit-${project.version}.tar.gz" />
+
+ <!-- Upload Gitblit WAR file -->
+ <githubUpload
+ source="${project.targetDirectory}/${distribution.warfile}"
+ target="gitblit-${project.version}.war" />
+
+ <!-- Upload Gitblit FedClient -->
+ <githubUpload
+ source="${project.targetDirectory}/${fedclient.zipfile}"
+ target="fedclient-${project.version}.zip" />
+
+ <!-- Upload Gitblit Manager -->
+ <githubUpload
+ source="${project.targetDirectory}/${manager.zipfile}"
+ target="manager-${project.version}.zip" />
+
+ <!-- Upload Gitblit API Library -->
+ <githubUpload
+ source="${project.targetDirectory}/${gbapi.zipfile}"
+ target="gbapi-${project.version}.zip" />
+
+
+ </target>
+
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Publish GH release draft
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <target name="publishRelease" depends="prepare" description="Publish the GitHub release draft" >
+
+ <echo>Publishing Gitblit ${project.version} release draft on GitHub for tag ${release.tag}</echo>
+
+ <ghGetReleaseId
+ releaseVersion="${project.version}"/>
+ <exec executable="bash" logError="true" >
+ <arg value="-c" />
+ <arg value="${octokit} -q edit_release ${gh.org} gitblit ${ghrelease.id} tag_name='${release.tag}'"></arg>
+ </exec>
+ <ghPublishReleaseDraft
+ releaseid="${ghrelease.id}"/>
+
+ </target>
+
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Build site and update GH pages for publishing
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <target name="updateSite" depends="buildSite,updateGhPages" description="Update the Gitblit pages site" >
+ </target>
+
+
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Publish site to site hosting service
@@ -760,16 +847,30 @@ <target name="tagRelease" depends="prepare" description="tag a new version and prepare for the next development cycle">
<!-- release -->
<property name="dryrun" value="false" />
- <mx:version stage="release" dryrun="${dryrun}" />
+ <mx:version stage="release" dryrun="${dryrun}" />
<property name="project.tag" value="v${project.version}" />
<!-- commit build.moxie & releases.moxie (automatic) -->
<mx:commit showtitle="no">
- <message>Prepare ${project.version} release</message>
+ <message>Prepare ${project.version} release</message>
<tag name="${project.tag}">
<message>${project.name} ${project.version} release</message>
</tag>
</mx:commit>
+ <!-- output version information for other scripts/programs to pick up -->
+ <mx:if>
+ <and>
+ <isset property="versionInfo" />
+ <not><equals arg1="${versionInfo}" arg2="" trim="true"/></not>
+ </and>
+ <then>
+ <echo file="${basedir}/${versionInfo}">
+GB_RELEASE_VERSION=${project.version}
+GB_RELEASE_TAG=${project.tag}
+</echo>
+ </then>
+ </mx:if>
+
<!-- create the release process script -->
<mx:if>
<os family="windows" />
@@ -862,6 +963,8 @@ <page name="bugtraq" src="setup_bugtraq.mkd" />
<page name="mirrors" src="setup_mirrors.mkd" />
<page name="scaling" src="setup_scaling.mkd" />
+ <page name="fail2ban" src="setup_fail2ban.mkd" />
+ <page name="filestore (Git LFS)" src="setup_filestore.mkd" />
<divider />
<page name="Gitblit as a viewer" src="setup_viewer.mkd" />
</menu>
@@ -893,10 +996,16 @@ <page name="design" src="design.mkd" />
<page name="rpc" src="rpc.mkd" />
</menu>
+
<menu name="changelog">
- <page name="current release" src="releasecurrent.mkd" />
- <page name="older releases" src="releasehistory.mkd" />
+ <page name="current release" out="releasenotes.html">
+ <template src="releasecurrent.ftl" data="${releaselog}" />
+ </page>
+ <page name="all releases" out="releases.html">
+ <template src="releasehistory.ftl" data="${releaselog}" />
+ </page>
</menu>
+
<menu name="links">
<link name="dev.gitblit.com (self-hosted)" src="https://dev.gitblit.com" />
<divider />
@@ -905,13 +1014,17 @@ <link name="Github" src="${project.scmUrl}" />
<link name="Issues" src="${project.issuesUrl}" />
<link name="Discussion" src="${project.forumUrl}" />
+ <link name="Twitter" src="https://twitter.com/gitblit" />
<link name="Ohloh" src="http://www.ohloh.net/p/gitblit" />
</menu>
</structure>
-
+
+ <replace token="%GCURL%" value="${gc.url}${currentRelease.tag}/" />
+
<properties token="%PROPERTIES%" file="${project.distrib.dir}/data/defaults.properties" />
-
- <regex searchPattern="\b(issue)(\s*[#]?|-){0,1}(\d+)\b" replacePattern="<a href='http://code.google.com/p/gitblit/issues/detail?id=$3'>issue $3</a>" />
+
+ <regex searchPattern="\b(commit)(\s*[#]?|-){0,1}([0-9a-fA-F]{5,})\b" replacePattern="<a href='https://github.com/gitblit/gitblit/commit/$3'>commit $3</a>" />
+ <regex searchPattern="\b(issue)(\s*[#]?|-){0,1}(\d+)\b" replacePattern="<a href='https://github.com/gitblit/gitblit/issues/$3'>issue $3</a>" />
<regex searchPattern="\b(pr|pull request)(\s*[#]?|-){0,1}(\d+)\b" replacePattern="<a href='https://github.com/gitblit/gitblit/pull/$3'>pull request #$3</a>" />
<regex searchPattern="\b(ticket)(\s*[#]?|-){0,1}(\d+)\b" replacePattern="<a href='https://dev.gitblit.com/tickets/gitblit.git/$3'>ticket $3</a>" />
@@ -983,7 +1096,7 @@ </copy>
</sequential>
</macrodef>
-
+
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Macro to upload binaries to Bintray
@@ -1002,6 +1115,83 @@ <!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Macro to create release draft on GitHub
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <macrodef name="ghReleaseDraft">
+ <attribute name="releaselog" />
+ <attribute name="releasetag" />
+ <sequential>
+ <echo>creating release ${release.tag} draft on GitHub</echo>
+ <exec executable="bash" logError="true" failonerror="true" outputproperty="ghrelease.id">
+ <arg value="-c" />
+ <arg value="${octokit} create_release ${gh.org} gitblit @{releasetag} name=${project.version} draft=true | cut -f2"></arg>
+ </exec>
+ <exec executable="bash" logError="true" failonerror="true" outputproperty="ghrelease.upldUrl">
+ <arg value="-c" />
+ <arg value="${octokit} release ${gh.org} gitblit ${ghrelease.id} _filter=.upload_url | sed 's/{.*$/?name=/'"></arg>
+ </exec>
+ <exec executable="bash" logError="true" failonerror="true" outputproperty="ghrelease.notes">
+ <arg value="-c" />
+ <arg value="cat @{releaselog} | awk -f ${relnoawk} protect=true"></arg>
+ </exec>
+ <exec executable="bash" logError="true" >
+ <arg value="-c" />
+ <arg value="${octokit} -q edit_release ${gh.org} gitblit ${ghrelease.id} body='${ghrelease.notes}'"></arg>
+ </exec>
+ </sequential>
+ </macrodef>
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Macro to upload binaries to GitHub
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <macrodef name="githubUpload">
+ <attribute name="source"/>
+ <attribute name="target"/>
+ <sequential>
+ <echo>uploading @{source} to GitHub release ${ghrelease.id}</echo>
+ <exec executable="bash" logError="true" failonerror="true" >
+ <arg value="-c" />
+ <arg value="${octokit} upload_asset ${ghrelease.upldUrl}@{target} @{source}"></arg>
+ </exec>
+ </sequential>
+ </macrodef>
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Macro to publish release draft on GitHub
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <macrodef name="ghPublishReleaseDraft">
+ <attribute name="releaseid"/>
+ <sequential>
+ <echo>publishing GitHub release draft @{releaseid}</echo>
+ <exec executable="bash" logError="true" >
+ <arg value="-c" />
+ <arg value="${octokit} -q edit_release ${gh.org} gitblit @{releaseid} draft=false"></arg>
+ </exec>
+ </sequential>
+ </macrodef>
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Macro to publish release draft on GitHub
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -->
+ <macrodef name="ghGetReleaseId">
+ <attribute name="releaseVersion"/>
+ <sequential>
+ <exec executable="bash" logError="true" failonerror="true" outputproperty="ghrelease.id">
+ <arg value="-c" />
+ <arg value="${octokit} list_releases ${gh.org} gitblit _filter='.[] | "\(.name)\t\(.tag_name)\t\(.id)"' | grep @{releaseVersion} | cut -f3"></arg>
+ </exec>
+ </sequential>
+ </macrodef>
+
+ <!--
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Install Gitblit JAR for usage as Maven module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
|