blob: c45541cc3eaadc934390fa104265a3b7655c8bfd [file] [log] [blame]
<!--
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
-->
<!--
Build file for creating release candidates and releasing lang.
$Id$
-->
<project name="release-lang" basedir="../../">
<target name="-init">
<property file="src/release-tools/build.properties" />
<property file="default.properties" />
<!-- provide some defaults -->
<property name="release.path" value="${user.home}/lang-rc" />
<property name="apache.id" value="dev@commons.apache.org" />
<property name="ssh.keyfile" value="${user.home}/.ssh/id_rsa"/>
<property name="release.url" value="https://dist.apache.org/repos/dist/dev/commons/lang" />
<macrodef name="mvn">
<attribute name="goal"/>
<element name="more-args" implicit="true" optional="true"/>
<sequential>
<exec executable="mvn">
<arg value="@{goal}" />
<more-args/>
</exec>
</sequential>
</macrodef>
<available property="dist-dir-exists?"
file="${release.path}"
type="dir"/>
</target>
<target name="pre-rc" depends="-init"
description="Prepares the download page and the release notes for rolling out a RC">
<mvn goal="changes:announcement-generate">
<arg value="-Prelease-notes"/>
</mvn>
<mvn goal="commons:download-page">
<arg value="-Dcommons.componentid=lang"/>
</mvn>
</target>
<target name="-clear-local-repo" depends="-init">
<property name="repo.path" value="${user.home}/.m2/repository/org/apache/commons/${component.name}/${component.version}" />
<delete dir="${repo.path}" />
</target>
<target name="-build-maven-artifacts" depends="-clear-local-repo">
<input message="Please enter gpg passphrase..." addproperty="gpg.pass">
<handler type="secure" />
</input>
<mvn goal="deploy">
<arg value="-Prelease" />
<arg value="-Ptest-deploy" />
<arg value="-Duser.name=${apache.id}" />
<arg value="-Dgpg.passphrase=${gpg.pass}" />
</mvn>
</target>
<target name="-populate-dist-repo"
depends="-build-maven-artifacts, -prepare-dist-area">
<copy todir="${release.path}/binaries">
<fileset dir="${repo.path}">
<include name="*bin.zip*" />
<include name="*bin.tar.gz*"/>
</fileset>
</copy>
<copy todir="${release.path}/source">
<fileset dir="${repo.path}">
<include name="*src.zip*" />
<include name="*src.tar.gz*"/>
</fileset>
</copy>
<copy file="RELEASE-NOTES.txt" todir="${release.path}" />
</target>
<target name="rc" description="Create the RC"
depends="-populate-dist-repo, -create-site"/>
<target name="-create-site" depends="-init">
<echo message="Creating site" />
<mvn goal="site"/>
</target>
<target name="upload-site" depends="-init"
description="Uploads and publishes the site to the RM's apache webspace">
<zip destfile="target/site.zip">
<zipfileset dir="target/site" prefix="${final.name}"/>
</zip>
<input message="Please enter ssh passphrase..." addproperty="ssh.pass">
<handler type="secure" />
</input>
<scp localFile="target/site.zip"
remoteToDir="${apache.id}@people.apache.org:."
keyfile="${ssh.keyfile}"
passphrase="${ssh.pass}"/>
<sshexec username="${apache.id}" host="people.apache.org"
command="unzip -d public_html site.zip"
keyfile="${ssh.keyfile}"
passphrase="${ssh.pass}"/>
<sshexec username="${apache.id}" host="people.apache.org"
command="rm site.zip"
keyfile="${ssh.keyfile}"
passphrase="${ssh.pass}"/>
</target>
<target name="nexus-bundle" depends="-build-maven-artifacts"
description="Creates an upload bundle suitable for Nexus Snapshot Upload">
<jar destfile="target/upload-bundle.jar">
<fileset dir="${repo.path}">
<include name="*.jar"/>
<include name="*.jar.asc"/>
<include name="*.pom"/>
<include name="*.pom.asc"/>
</fileset>
</jar>
</target>
<target name="-prepare-dist-area" depends="-checkout-dist, -update-dist"/>
<target name="-checkout-dist" depends="-init" unless="dist-dir-exists?">
<echo message="Checking out ${release.url} -> ${release.path}"/>
<exec executable="svn">
<arg value="co" />
<arg value="${release.url}" />
<arg value="${release.path}" />
</exec>
</target>
<target name="-update-dist" depends="-init" if="dist-dir-exists?">
<echo message="Updating ${release.path}"/>
<exec executable="svn" dir="${release.path}">
<arg value="up" />
</exec>
</target>
</project>