From 413e9b486b1a84960d4c8ddac130e87280f64c6a Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 10 Apr 2014 19:00:52 -0400 Subject: [PATCH] Split administration commands into a plugin, enhance plugin manager --- build.xml | 488 ++++++++++++++++++++++++++++------------------------- 1 files changed, 260 insertions(+), 228 deletions(-) diff --git a/build.xml b/build.xml index 41993a4..0baf090 100644 --- a/build.xml +++ b/build.xml @@ -8,14 +8,14 @@ documentation @ http://gitblit.github.io/moxie ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <property name="moxie.version" value="0.7.3" /> + <property name="moxie.version" value="0.9.1" /> <property name="moxie.url" value="http://gitblit.github.io/moxie/maven" /> <property name="moxie.jar" value="moxie-toolkit-${moxie.version}.jar" /> <property name="moxie.dir" value="${user.home}/.moxie" /> <!-- Download Moxie from it's Maven repository to user.home --> <mkdir dir="${moxie.dir}" /> - <get src="${moxie.url}/org/moxie/moxie-toolkit/${moxie.version}/${moxie.jar}" + <get src="${moxie.url}/com/gitblit/moxie/moxie-toolkit/${moxie.version}/${moxie.jar}" dest="${moxie.dir}" skipexisting="true" verbose="true" /> <!-- Register Moxie tasks --> @@ -49,9 +49,10 @@ <property name="authority.zipfile" value="authority-${project.version}.zip" /> <property name="gbapi.zipfile" value="gbapi-${project.version}.zip" /> <property name="express.zipfile" value="express-${project.version}.zip" /> - + <property name="maven.directory" value="${basedir}/../gitblit-maven" /> + <!-- Download links --> - <property name="gc.url" value="http://code.google.com/p/gitblit/downloads/detail?name=" /> + <property name="gc.url" value="http://dl.bintray.com/jamesmoger/generic/" /> </target> @@ -61,22 +62,6 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <target name="clean" depends="prepare" description="Cleanup all build artifacts and directories"> - <!-- cleanup legacy build structure --> - <!-- this can be eliminated after 1.3.0 release --> - <delete> - <fileset dir="${basedir}"> - <include name="*.zip" /> - <include name="*.war" /> - <include name="*.jar" /> - </fileset> - </delete> - <delete dir="${basedir}/deploy" failonerror="false" /> - <delete dir="${basedir}/express" failonerror="false" /> - <delete dir="${basedir}/jar" failonerror="false" /> - <delete dir="${basedir}/javadoc" failonerror="false" /> - <delete dir="${basedir}/site" failonerror="false" /> - <delete dir="${basedir}/temp" failonerror="false" /> - <delete dir="${basedir}/war" failonerror="false" /> <!-- Clean build and target directories --> <mx:clean /> @@ -101,29 +86,12 @@ this file is only used for parsing setting descriptions. --> <copy tofile="${project.src.dir}/reference.properties" overwrite="true" file="${project.distrib.dir}/data/gitblit.properties" /> - - <!-- - upgrade existing workspace to data directory - this code can be eliminated after 1.3.0 release - --> - <move todir="${basedir}/data" overwrite="true" failonerror="false"> - <fileset dir="${basedir}"> - <include name="users.conf" /> - <include name="projects.conf" /> - <include name="gitblit.properties" /> - <include name="serverKeyStore.jks" /> - <include name="serverTrustStore.jks" /> - </fileset> - </move> - <move todir="${basedir}/data/certs" overwrite="true" failonerror="false"> - <fileset dir="${basedir}/certs" /> - </move> - <move todir="${basedir}/data/git" overwrite="true" failonerror="false"> - <fileset dir="${basedir}/git" /> - </move> - <move todir="${basedir}/data/proposals" overwrite="true" failonerror="false"> - <fileset dir="${basedir}/proposals" /> - </move> + + <!-- copy clientapps.json to the source directory. + this file is only used if a local file is not provided. --> + <copy tofile="${project.src.dir}/clientapps.json" overwrite="true" + file="${project.distrib.dir}/data/clientapps.json" /> + </target> @@ -139,8 +107,8 @@ outputclass="com.gitblit.Keys" todir="${project.src.dir}" /> - <!-- Compile project incrementally --> - <mx:javac scope="compile" clean="false" /> + <!-- Compile project --> + <mx:javac scope="compile" clean="true" /> </target> @@ -180,6 +148,13 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <target name="run" depends="compile" description="Run Gitblit GO"> + <!-- copy static files --> + <copy todir="${basedir}/build/classes" overwrite="false"> + <fileset dir="${project.resources.dir}"> + <exclude name="thumbs.db" /> + <exclude name="*.mkd" /> + </fileset> + </copy> <!-- run the mainclass in a separate JVM --> <mx:run fork="true" /> @@ -267,27 +242,12 @@ <prepareDataDirectory toDir="${webinf}/data" /> <!-- Build the WAR web.xml from the prototype web.xml --> - <mx:webxml sourcefile="${project.src.dir}/WEB-INF/web.xml" destfile="${webinf}/web.xml" /> + <mx:webxml sourcefile="${project.src.dir}/WEB-INF/web.xml" destfile="${webinf}/web.xml"> + <replace token="@gb.version@" value="${project.version}" /> + </mx:webxml> <!-- Gitblit jar --> - <mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true"> - <!-- Specify all web.xml servlets and filters --> - <class name="com.gitblit.GitBlit" /> - <class name="com.gitblit.DownloadZipFilter" /> - <class name="com.gitblit.DownloadZipServlet" /> - <class name="com.gitblit.EnforceAuthenticationFilter" /> - <class name="com.gitblit.FederationServlet" /> - <class name="com.gitblit.GitFilter" /> - <class name="com.gitblit.git.GitServlet" /> - <class name="com.gitblit.PagesFilter" /> - <class name="com.gitblit.PagesServlet" /> - <class name="com.gitblit.RobotsTxtServlet" /> - <class name="com.gitblit.RpcFilter" /> - <class name="com.gitblit.RpcServlet" /> - <class name="com.gitblit.SyndicationFilter" /> - <class name="com.gitblit.SyndicationServlet" /> - <class name="com.gitblit.wicket.GitBlitWebApp" /> - </mx:genjar> + <mx:jar destfile="${webinf}/lib/gitblit.jar" includeresources="false" /> <!-- Build the WAR file --> <mx:zip basedir="${war.dir}" destfile="${project.targetDirectory}/${distribution.warfile}" compress="true" > @@ -319,8 +279,10 @@ <!-- generate jar by traversing the class hierarchy of the specified classes, exclude any classes in classpath jars --> <mx:genjar tag="" includeresources="false" excludeClasspathJars="true" - destfile="${project.targetDirectory}/fedclient.jar"> + destfile="${project.targetDirectory}/fedclient.jar" + excludes="**/.class,**/*.java, **/Thumbs.db, **/*.mkd, com/gitblit/wicket/**"> <mainclass name="com.gitblit.FederationClient" /> + <class name="com.gitblit.Keys" /> <launcher paths="ext" /> <resource file="${project.compileOutputDirectory}/log4j.properties" /> </mx:genjar> @@ -374,28 +336,13 @@ <!-- Build the Express web.xml from the prototype web.xml and gitblit.properties --> <!-- THIS FILE IS NOT OVERRIDDEN ONCE IT IS BUILT!!! --> <mx:webxml sourcefile="${project.src.dir}/WEB-INF/web.xml" destfile="${webinf}/web.xml" - propertiesFile="${project.distrib.dir}/data/gitblit.properties" - skip="server.*" /> + propertiesFile="${project.distrib.dir}/data/gitblit.properties" + skip="server.*"> + <replace token="@gb.version@" value="${project.version}" /> + </mx:webxml> <!-- Gitblit classes --> - <mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true"> - <!-- Specify all web.xml servlets and filters --> - <class name="com.gitblit.GitBlit" /> - <class name="com.gitblit.DownloadZipFilter" /> - <class name="com.gitblit.DownloadZipServlet" /> - <class name="com.gitblit.EnforceAuthenticationFilter" /> - <class name="com.gitblit.FederationServlet" /> - <class name="com.gitblit.GitFilter" /> - <class name="com.gitblit.git.GitServlet" /> - <class name="com.gitblit.PagesFilter" /> - <class name="com.gitblit.PagesServlet" /> - <class name="com.gitblit.RobotsTxtServlet" /> - <class name="com.gitblit.RpcFilter" /> - <class name="com.gitblit.RpcServlet" /> - <class name="com.gitblit.SyndicationFilter" /> - <class name="com.gitblit.SyndicationServlet" /> - <class name="com.gitblit.wicket.GitBlitWebApp" /> - </mx:genjar> + <mx:jar destfile="${webinf}/lib/gitblit.jar" includeresources="false" /> <!-- Build Express Zip file --> <mx:zip basedir="${express.dir}" destfile="${project.targetDirectory}/${express.zipfile}"> @@ -451,6 +398,7 @@ <resource file="${project.resources.dir}/commit_merge_16x16.png" /> <resource file="${project.resources.dir}/commit_divide_16x16.png" /> <resource file="${project.resources.dir}/star_16x16.png" /> + <resource file="${project.resources.dir}/mirror_16x16.png" /> <resource file="${project.resources.dir}/blank.png" /> <resource file="${project.src.dir}/log4j.properties" /> <resource> @@ -461,6 +409,11 @@ </resource> <mainclass name="com.gitblit.client.GitblitManagerLauncher" /> + <class name="com.gitblit.Keys" /> + <class name="com.gitblit.client.GitblitClient" /> + <class name="com.gitblit.models.FederationModel" /> + <class name="com.gitblit.models.FederationProposal" /> + <class name="com.gitblit.models.FederationSet" /> <manifest> <attribute name="SplashScreen-Image" value="splash.png" /> </manifest> @@ -482,75 +435,7 @@ <!-- Cleanup --> <delete file="${project.targetDirectory}/manager.jar" /> </target> - - - <!-- - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Build the stand-alone, Gitblit Authority - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --> - <target name="buildAuthority" depends="compile" description="Builds the stand-alone Gitblit Authority"> - <echo>Building Gitblit Authority ${project.version}</echo> - <!-- generate jar by traversing the class hierarchy of the specified - classes, exclude any classes in "authority" classpath jars --> - <mx:genjar tag="authority" excludeClasspathJars="true" - destfile="${project.targetDirectory}/authority.jar"> - <resource file="${project.src.dir}/com/gitblit/client/splash.png" /> - <resource file="${project.resources.dir}/gitblt-favicon.png" /> - <resource file="${project.resources.dir}/user_16x16.png" /> - <resource file="${project.resources.dir}/users_16x16.png" /> - <resource file="${project.resources.dir}/rosette_16x16.png" /> - <resource file="${project.resources.dir}/rosette_32x32.png" /> - <resource file="${project.resources.dir}/vcard_16x16.png" /> - <resource file="${project.resources.dir}/settings_16x16.png" /> - <resource file="${project.resources.dir}/settings_32x32.png" /> - <resource file="${project.resources.dir}/search-icon.png" /> - <resource file="${project.resources.dir}/mail_16x16.png" /> - <resource file="${project.resources.dir}/script_16x16.png" /> - <resource file="${project.resources.dir}/blank.png" /> - <resource file="${project.resources.dir}/bullet_green.png" /> - <resource file="${project.resources.dir}/bullet_orange.png" /> - <resource file="${project.resources.dir}/bullet_red.png" /> - <resource file="${project.resources.dir}/bullet_white.png" /> - <resource file="${project.resources.dir}/bullet_delete.png" /> - <resource file="${project.resources.dir}/bullet_key.png" /> - <resource file="${project.src.dir}/log4j.properties" /> - <resource> - <!-- inlcude all translations --> - <fileset dir="${project.src.dir}/com/gitblit/wicket"> - <include name="*.properties" /> - </fileset> - </resource> - - <mainclass name="com.gitblit.authority.Launcher" /> - <manifest> - <attribute name="SplashScreen-Image" value="splash.png" /> - </manifest> - </mx:genjar> - - <!-- Build Authority Zip file --> - <mx:zip destfile="${project.targetDirectory}/${authority.zipfile}"> - <fileset dir="${basedir}"> - <include name="LICENSE" /> - <include name="NOTICE" /> - </fileset> - <fileset dir="${project.targetDirectory}"> - <include name="authority.jar" /> - </fileset> - <zipfileset dir="${project.distrib.dir}/data" prefix="data"> - <include name="users.conf" /> - <include name="gitblit.properties" /> - </zipfileset> - <!-- Gitblit Authority data --> - <zipfileset dir="${project.distrib.dir}/data/certs" prefix="data/certs" /> - <!-- include "authority" tagged dependencies --> - <dependencies prefix="ext" tag="authority" /> - </mx:zip> - - <!-- Cleanup --> - <delete file="${project.targetDirectory}/authority.jar" /> - </target> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -621,9 +506,6 @@ <delete> <fileset dir="${project.targetDirectory}"> <include name="javadoc/**" /> - <include name="gbapi-${project.version}.jar" /> - <include name="gbapi-${project.version}-sources.jar" /> - <include name="gbapi-${project.version}-javadoc.jar" /> </fileset> </delete> </target> @@ -649,8 +531,52 @@ <page name="features" src="features.mkd" /> <page name="screenshots" src="screenshots.mkd" /> </menu> - <menu name="documentation"> - <page name="setup" src="setup.mkd" /> + <menu name="documentation" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <menu name="Gitblit GO" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="setup GO" src="setup_go.mkd" /> + <page name="upgrade GO" src="upgrade_go.mkd" /> + </menu> + <divider /> + <menu name="Gitblit WAR" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="setup WAR" src="setup_war.mkd" /> + <page name="upgrade WAR" src="upgrade_war.mkd" /> + </menu> + <divider /> + <menu name="Gitblit Express" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="setup Express" src="setup_express.mkd" /> + <page name="upgrade Express" src="upgrade_express.mkd" /> + </menu> + <divider /> + <menu name="Server Configuration" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="administration" src="administration.mkd" /> + <page name="authentication" src="setup_authentication.mkd" /> + <page name="push hooks" src="setup_hooks.mkd" /> + <page name="lucene indexing" src="setup_lucene.mkd" /> + <page name="reverse proxies" src="setup_proxy.mkd" /> + <page name="client app menus" src="setup_clientmenus.mkd" /> + <page name="bugtraq" src="setup_bugtraq.mkd" /> + <page name="mirrors" src="setup_mirrors.mkd" /> + <page name="scaling" src="setup_scaling.mkd" /> + <divider /> + <page name="plugins" src="setup_plugins.mkd" /> + <divider /> + <page name="Gitblit as a viewer" src="setup_viewer.mkd" /> + </menu> + <divider /> + <menu name="Client Usage" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="using HTTP/HTTPS" src="setup_transport_http.mkd" /> + <page name="using SSH" src="setup_transport_ssh.mkd" /> + <page name="using the Eclipse plugin" src="eclipse_plugin.mkd" /> + </menu> + <divider /> + <menu name="Tickets" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="overview" src="tickets_overview.mkd" /> + <page name="using" src="tickets_using.mkd" /> + <page name="barnum" src="tickets_barnum.mkd" /> + <page name="setup" src="tickets_setup.mkd" /> + <page name="replication & advanced administration" src="tickets_replication.mkd" /> + </menu> + <divider /> <page name="federation" src="federation.mkd" /> <divider /> <page name="settings" src="properties.mkd" /> @@ -681,16 +607,28 @@ <link name="Federation Client" src="${gc.url}fedclient-${project.releaseVersion}.zip" /> <divider /> <link name="API Library" src="${gc.url}gbapi-${project.releaseVersion}.zip" /> + <divider /> + <link name="Bintray (1.4.0+)" src="https://bintray.com/jamesmoger/generic/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}" /> </menu> <menu name="links"> - <link name="Demo" src="https://demo-gitblit.rhcloud.com" /> + <link name="Gitblit Demo (RELEASE)" src="https://demo-gitblit.rhcloud.com" /> + <link name="Gitblit Next (SNAPSHOT)" src="https://next-gitblit.rhcloud.com" /> + <divider /> + <link name="Gitblit (Self-Hosted)" src="https://dev.gitblit.com" /> <divider /> <link name="Github" src="${project.scmUrl}" /> <link name="Issues" src="${project.issuesUrl}" /> <link name="Discussion" src="${project.forumUrl}" /> <link name="Google+" src="${project.socialNetworkUrl}" /> + <link name="Twitter" src="https://twitter.com/gitblit" /> <link name="Ohloh" src="http://www.ohloh.net/p/gitblit" /> + <divider /> + <link name="+JamesMoger" src="https://plus.google.com/+JamesMoger" /> + <link name="@JamesMoger" src="https://twitter.com/JamesMoger" /> </menu> <divider /> </structure> @@ -700,6 +638,8 @@ <properties token="%PROPERTIES%" file="${project.distrib.dir}/data/gitblit.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(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>" /> <!-- Set the logo from the mx:doc resources --> <logo file="${project.resources.dir}/gitblt_25_white.png" /> @@ -743,13 +683,26 @@ </target> + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Package and deploy RELEASE artifacts to the Maven repository + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="buildMavenArtifacts" depends="buildApiLibrary"> + <mx:package /> + <mx:deploy basedir="${maven.directory}" allowsnapshots="false" /> + <mx:deploy basedir="${maven.directory}" allowsnapshots="false" + name="Gitblit API" description="Gitblit JSON/RSS API client library" + tags="api" artifactid="gbapi" /> + </target> + <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Build all binaries and site ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="buildAll" depends="buildAuthority,buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary,buildSite" /> + <target name="buildAll" depends="buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary,buildSite" /> <!-- @@ -757,7 +710,7 @@ Update the gh-pages branch with the current site ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="updateGhPages" depends="buildSite"> + <target name="updateGhPages"> <!-- Build gh-pages branch --> <mx:ghpages repositorydir="${basedir}" obliterate="true" /> </target> @@ -765,109 +718,121 @@ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Publish binaries to Google Code + Publish binaries to Bintray ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="publishBinaries" depends="clean,buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary" description="Publish the Gitblit binaries to Google Code"> + <target name="publishBinaries" depends="prepare" description="Publish the Gitblit binaries to Bintray"> <echo>Uploading Gitblit ${project.version} binaries</echo> <!-- Upload Gitblit GO Windows ZIP file --> - <mx:gcupload - sourceFile="${distribution.zipfile}" - targetFile="gitblit-${project.version}.zip" - description="Gitblit GO v${project.version} (standalone, integrated Gitblit server for Windows)" /> + <bintrayUpload + source="${project.targetDirectory}/${distribution.zipfile}" + target="gitblit-${project.version}.zip" /> <!-- Upload Gitblit GO Linux/Unix tar.gz file --> - <mx:gcupload - sourceFile="${distribution.tgzfile}" - targetFile="gitblit-${project.version}.tar.gz" - description="Gitblit GO v${project.version} (standalone, integrated Gitblit server for Linux/Unix)" /> + <bintrayUpload + source="${project.targetDirectory}/${distribution.tgzfile}" + target="gitblit-${project.version}.tar.gz" /> <!-- Upload Gitblit WAR file --> - <mx:gcupload - sourceFile="${distribution.warfile}" - targetFile="gitblit-${project.version}.war" - description="Gitblit WAR v${project.version} (standard WAR webapp for servlet containers)" /> + <bintrayUpload + source="${project.targetDirectory}/${distribution.warfile}" + target="gitblit-${project.version}.war" /> <!-- Upload Gitblit FedClient --> - <mx:gcupload - sourceFile="${fedclient.zipfile}" - targetFile="fedclient-${project.version}.zip" - description="Gitblit Federation Client v${project.version} (command-line tool to clone data from federated Gitblit instances)" /> + <bintrayUpload + source="${project.targetDirectory}/${fedclient.zipfile}" + target="fedclient-${project.version}.zip" /> <!-- Upload Gitblit Manager --> - <mx:gcupload - sourceFile="${manager.zipfile}" - targetFile="manager-${project.version}.zip" - description="Gitblit Manager v${project.version} (Swing tool to remotely administer a Gitblit server)" /> + <bintrayUpload + source="${project.targetDirectory}/${manager.zipfile}" + target="manager-${project.version}.zip" /> <!-- Upload Gitblit API Library --> - <mx:gcupload - sourceFile="${gbapi.zipfile}" - targetFile="gbapi-${project.version}.zip" - description="Gitblit API Library v${project.version} (JSON RPC library to integrate with your software)" /> + <bintrayUpload + source="${project.targetDirectory}/${gbapi.zipfile}" + target="gbapi-${project.version}.zip" /> <!-- Upload Gitblit Express for RedHat OpenShift --> - <mx:gcupload - sourceFile="${express.zipfile}" - targetFile="express-${project.version}.zip" - description="Gitblit Express v${project.version} (run Gitblit on RedHat's OpenShift cloud)" /> + <bintrayUpload + source="${project.targetDirectory}/${express.zipfile}" + target="express-${project.version}.zip" /> </target> - + <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Publish site to site hosting service - You must add ext/commons-net-1.4.0.jar to your ANT classpath. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="publishSite" depends="clean,buildSite,updateGhPages" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)" > + <target name="publishSite" depends="clean,buildSite,updateGhPages" description="Publish the Gitblit site to a host" > <echo>Uploading Gitblit ${project.version} website</echo> - <ftp server="${ftp.server}" + <mx:ftp server="${ftp.server}" userid="${ftp.user}" password="${ftp.password}" remotedir="${ftp.dir}" passive="true" verbose="yes"> <fileset dir="${project.siteTargetDirectory}" /> - </ftp> + </mx:ftp> </target> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Compile from source, publish binaries, and build & deploy site - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --> - <target name="publishAll" depends="publishBinaries,publishSite" /> - - - <!-- - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tag a new version and prepare for the next development cycle. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="tagRelease" depends="prepare"> + <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}" /> + <property name="project.tag" value="v${project.version}" /> <!-- commit build.moxie & releases.moxie (automatic) --> <mx:commit showtitle="no"> <message>Prepare ${project.version} release</message> - <tag name="v${project.version}"> + <tag name="${project.tag}"> <message>${project.name} ${project.version} release</message> </tag> </mx:commit> + + <!-- create the release process script --> + <mx:if> + <os family="windows" /> + <then> + <!-- Windows PowerShell script --> + <!-- set-executionpolicy remotesigned --> + <property name="recipe" value="release_${project.version}.ps1" /> + </then> + <else> + <!-- Bash script --> + <property name="recipe" value="release_${project.version}.sh" /> + </else> + </mx:if> + <delete file="${recipe}" failonerror="false" quiet="true" verbose="false" /> + <!-- Work-around for lack of proper ant property substitution in copy --> + <property name="dollar" value="$"/> + <copy file="release.template" tofile="${recipe}"> + <filterset begintoken="${dollar}{" endtoken="}"> + <filter token="project.version" value="${project.version}" /> + <filter token="project.commitId" value="${project.commitId}" /> + <filter token="project.tag" value="${project.tag}" /> + <filter token="project.directory" value="${basedir}" /> + <filter token="maven.directory" value="${maven.directory}" /> + </filterset> + </copy> + <chmod file="${recipe}" perm="ugo+rx" /> <!-- next cycle --> <mx:version stage="snapshot" incrementNumber="incremental" dryrun="${dryrun}" /> <mx:commit showtitle="no"> <message>Reset build identifiers for next development cycle</message> - </mx:commit> + </mx:commit> </target> @@ -886,11 +851,55 @@ <page name="features" src="features.mkd" /> </menu> <menu name="documentation"> - <page name="setup" src="setup.mkd" /> + <menu name="Gitblit GO" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="setup GO" src="setup_go.mkd" /> + <page name="upgrade GO" src="upgrade_go.mkd" /> + </menu> + <divider /> + <menu name="Gitblit WAR" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="setup WAR" src="setup_war.mkd" /> + <page name="upgrade WAR" src="upgrade_war.mkd" /> + </menu> + <divider /> + <menu name="Gitblit Express" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="setup Express" src="setup_express.mkd" /> + <page name="upgrade Express" src="upgrade_express.mkd" /> + </menu> + <divider /> + <menu name="Server Configuration" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="administration" src="administration.mkd" /> + <page name="authentication" src="setup_authentication.mkd" /> + <page name="push hooks" src="setup_hooks.mkd" /> + <page name="lucene indexing" src="setup_lucene.mkd" /> + <page name="reverse proxies" src="setup_proxy.mkd" /> + <page name="client app menus" src="setup_clientmenus.mkd" /> + <page name="bugtraq" src="setup_bugtraq.mkd" /> + <page name="mirrors" src="setup_mirrors.mkd" /> + <page name="scaling" src="setup_scaling.mkd" /> + <divider /> + <page name="plugins" src="setup_plugins.mkd" /> + <divider /> + <page name="Gitblit as a viewer" src="setup_viewer.mkd" /> + </menu> + <divider /> + <menu name="Client Usage" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="using HTTP/HTTPS" src="setup_transport_http.mkd" /> + <page name="using SSH" src="setup_transport_ssh.mkd" /> + <page name="using the Eclipse plugin" src="eclipse_plugin.mkd" /> + </menu> + <divider /> + <menu name="Tickets" pager="true" pagerPlacement="bottom" pagerLayout="justified"> + <page name="overview" src="tickets_overview.mkd" /> + <page name="using" src="tickets_using.mkd" /> + <page name="barnum" src="tickets_barnum.mkd" /> + <page name="setup" src="tickets_setup.mkd" /> + <page name="replication & advanced administration" src="tickets_replication.mkd" /> + </menu> + <divider /> <page name="federation" src="federation.mkd" /> <divider /> - <page name="faq" src="faq.mkd" /> <page name="settings" src="properties.mkd" /> + <page name="faq" src="faq.mkd" /> <divider /> <page name="design" src="design.mkd" /> <page name="rpc" src="rpc.mkd" /> @@ -900,7 +909,8 @@ <page name="older releases" src="releasehistory.mkd" /> </menu> <menu name="links"> - <link name="Demo" src="https://demo-gitblit.rhcloud.com" /> + <link name="Gitblit Demo (RELEASE)" src="https://demo-gitblit.rhcloud.com" /> + <link name="Gitbilt Next (SNAPSHOT)" src="https://next-gitblit.rhcloud.com" /> <divider /> <link name="Github" src="${project.scmUrl}" /> <link name="Issues" src="${project.issuesUrl}" /> @@ -913,7 +923,9 @@ <properties token="%PROPERTIES%" file="${project.distrib.dir}/data/gitblit.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(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>" /> + <!-- Set the logo from the mx:doc resources --> <logo file="${project.resources.dir}/gitblt_25_white.png" /> <favicon file="${project.resources.dir}/gitblt-favicon.png" /> @@ -948,7 +960,13 @@ <fileset dir="${project.distrib.dir}/data"> <include name="users.conf" /> <include name="projects.conf" /> - <include name="gitblit.properties" /> + <include name="gitblit.properties" /> + </fileset> + </copy> + <mkdir dir="@{toDir}/git" /> + <copy todir="@{toDir}/git" overwrite="false"> + <fileset dir="${project.distrib.dir}/data/git"> + <include name="project.mkd" /> </fileset> </copy> <mkdir dir="@{toDir}/groovy" /> @@ -958,8 +976,13 @@ <include name="sendmail-html.groovy" /> <include name="jenkins.groovy" /> <include name="protect-refs.groovy" /> + <include name="blockpush.groovy" /> + <include name="localclone.groovy" /> <include name="fogbugz.groovy" /> <include name="thebuggenie.groovy" /> + <include name="fisheye.groovy" /> + <include name="redmine-fetch.groovy" /> + <include name="subgit.groovy" /> </fileset> </copy> </sequential> @@ -967,25 +990,19 @@ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Macro to upload binaries to GoogleCode + Macro to upload binaries to Bintray ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <macrodef name="googleUpload"> - <attribute name="sourceFile"/> - <attribute name="targetFile"/> - <attribute name="description"/> + <macrodef name="bintrayUpload"> + <attribute name="source"/> + <attribute name="target"/> <sequential> - <gcupload - username="${googlecode.user}" - password="${googlecode.password}" - projectname="gitblit" - filename="${project.targetDirectory}/@{sourceFile}" - targetfilename="@{targetFile}" - summary="@{description}" - labels="Featured, Type-Package, OpSys-All" /> - </sequential> + <echo>uploading @{source} to Bintray</echo> + <exec executable="curl"> + <arg line="--silent --show-error -T @{source} -u${bintray.username}:${bintray.apikey} https://api.bintray.com/content/${bintray.username}/generic/${project.name}/${project.version}/@{target}"></arg> + </exec> + </sequential> </macrodef> - <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1028,5 +1045,20 @@ <arg value="-DrepositoryId=${project.maven.repo.id}" /> <arg value="-DcreateChecksum=true" /> </exec> - </target> + </target> + + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Install Gitblit JAR for usage as Moxie artifact + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="installMoxie" depends="compile" description="Install Gitblit JAR as a Moxie artifact"> + <local name="project.jar" /> + <property name="project.jar" value="${project.targetDirectory}/${project.artifactId}-${project.version}.jar" /> + <property name="resourceFolderPrefix" value="" /> + <mx:jar destfile="${project.jar}" includeresources="true" resourceFolderPrefix="${resourceFolderPrefix}" /> + + <mx:install /> + </target> + </project> -- Gitblit v1.9.1