aboutsummaryrefslogtreecommitdiff
path: root/build.xml
blob: 364613a943baafc5b1db9e3f80664da0faf8b2dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?xml version="1.0" encoding="utf-8"?>
<project name="SemanticScuttle" default="zip" basedir=".">
  <!--
    SemanticScuttle phing build file.
    This script should provide a one-stop tool for all administrative
    tasks around SemanticScuttle, like creating a release version,
    tagging a release, running unit tests etc.
  -->
  <property file="build.properties" />

  <property name="version-m"  value="0.97" />
  <property name="version"    value="0.97.0" />
  <property name="zipfile"    value="${phing.project.name}-${version}.zip" />
  <property name="distfile"   value="dist/${zipfile}" />
  <property name="sfproject"  value="SemanticScuttle" />
  <property name="sffilepath" value="s/se/semanticscuttle/" />
  <property name="svnpath"    value="https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/" />

  <target name="zip" depends="check"
   description="Create zip file for release"
   >
    <!--
      The release file is for end users, so it is safe to
      remove anything developer-related.

      Test your zip with: unzip -l SemanticScuttle-0.95.0.zip
    -->
    <mkdir dir="dist" />
    <echo msg="Creating distribution zip for SemanticScuttle ${version}"/>
    <delete file="${distfile}" failonerror="false"/>
    <zip destfile="${distfile}" prefix="${phing.project.name}-${version}/">
      <fileset dir=".">
        <include name="data/**"/>
        <include name="doc/**"/>
        <include name="src/**"/>
        <include name="www/**"/>
        <exclude name="**/.gitignore/"/>
        <exclude name="**/.svn/"/>
        <exclude name="data/config.php"/>
        <exclude name="data/locales/messages.po"/>
        <exclude name="data/locales/*/LC_MESSAGES/messages.po"/>
        <exclude name="doc/developers/"/>
        <exclude name="src/php-gettext/examples/" />
        <exclude name="src/php-gettext/bin/"/>
      </fileset>
    </zip>
  </target>



  <target name="package" depends="check"
   description="Creates the pear package"
  >
   <!-- fixme: create package.xml with d51pearpkg2 -->
  </target>



  <target name="release" depends="check,zip,deploy-sf,svntag"
   description="Release the version on sourceforge"
   >
   <!-- meta-target -->
  </target>


  <!--
  /home/frs/project/s/se/semanticscuttle/SemanticScuttle/v0.94/
  /home/frs/project/s/se/semanticscuttle/SemanticScuttle/v0.94/SemanticScuttle-v0.94.zip
  /home/frs/project/s/se/semanticscuttle/SemanticScuttle/v0.94/SemanticScuttle-v0.94.1.zip
  https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download
  -->
  <target name="deploy-sf" depends="check,zip"
   description="Upload release to sourceforge"
   >
    <delete dir="dist/deploy-sf" /><!-- make empty -->
    <mkdir dir="dist/deploy-sf" />
    <mkdir dir="dist/deploy-sf/v${version-m}" />
    <copy file="${distfile}" tofile="dist/deploy-sf/v${version-m}/${zipfile}"/>
    <!-- test
    <exec command="rsync -av dist/deploy-sf/ /tmp/test/" escape="false" />
    -->
    <exec
     command="rsync -av -e ssh dist/deploy-sf/ ${sfuser},${sfproject}@frs.sourceforge.net:/home/frs/project/${sffilepath}/${sfproject}/"
     escape="false" checkreturn="false"
     />
    <!-- rsync always returns code 23 on sourceforge releases, so we
         can't check return values -->
  </target>


  <target name="svntag"
   description="create the svn tag for the current version"
   >
    <exec
     command="svn cp ${svnpath}trunk ${svnpath}/tags/${version} -m 'tag version ${version}'"
     escape="false" checkreturn="true"
     />
  </target>


  <target name="check"
   description="Check variables"
   >
    <fail unless="version" message="Version not defined!" />
    <fail unless="sfuser" message="Sourceforge username not defined!" />
    <fail unless="sfproject" message="Sourceforge project name not defined!" />
    <fail unless="sffilepath" message="Sourceforge project file path not defined!" />
  </target>

</project>