You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build-publish.xml 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DMDirc-Publish" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
  3. <description>Publish artifacts for DMDirc</description>
  4. <target name="-init-version">
  5. <taskdef name="git-describe" classname="org.mdonoughe.JGitDescribeTask" classpathref="lib.classpath"/>
  6. </target>
  7. <target name="-get-git-version" depends="-init-version">
  8. <git-describe dir="${git.dir}" property="parsers.version.main" subdir="${basedir}/${src.dir}/com/dmdirc/parser/common/;${basedir}/${src.dir}/com/dmdirc/parser/interfaces/" />
  9. <git-describe dir="${git.dir}" property="parsers.version.irc" subdir="${basedir}/${src.dir}/com/dmdirc/parser/irc/" />
  10. </target>
  11. <target name="publish-release" depends="-get-git-version, -init-ivy">
  12. <tstamp>
  13. <format property="timestamp" pattern="yyyyddMM" />
  14. </tstamp>
  15. <ivy:resolve file="ivy.common.xml"/>
  16. <ivy:deliver deliverpattern="${build.dir}/ivy.common.xml" pubrevision="${parsers.version.main}" />
  17. <ivy:makepom ivyfile="${build.dir}/ivy.common.xml" pomfile="dist/parser.common.pom">
  18. <mapping conf="default" scope="compile"/>
  19. </ivy:makepom>
  20. <ivy:retrieve/>
  21. <ivy:publish
  22. pubrevision="${parsers.version.main}"
  23. status="release"
  24. overwrite="true"
  25. publishivy="false"
  26. artifactspattern="dist/parser.common.[ext]"
  27. resolver="upload-release"/>
  28. <ivy:resolve file="ivy.irc.xml"/>
  29. <ivy:deliver deliverpattern="${build.dir}/ivy.irc.xml" pubrevision="${parsers.version.irc}" />
  30. <ivy:makepom ivyfile="${build.dir}/ivy.irc.xml" pomfile="dist/parser.irc.pom">
  31. <mapping conf="default" scope="compile"/>
  32. <dependency group="com.dmdirc.parser" artifact="common" version="${parsers.version.main}"/>
  33. </ivy:makepom>
  34. <ivy:retrieve/>
  35. <ivy:publish
  36. pubrevision="${parsers.version.irc}"
  37. status="release"
  38. overwrite="true"
  39. publishivy="false"
  40. artifactspattern="dist/parser.irc.[ext]"
  41. resolver="upload-release"/>
  42. </target>
  43. <target name="publish-nightlies" depends="-get-git-version, -init-ivy">
  44. <tstamp>
  45. <format property="timestamp" pattern="yyyyddMM" />
  46. </tstamp>
  47. <ivy:resolve file="ivy.common.xml"/>
  48. <ivy:deliver deliverpattern="${build.dir}/ivy.common.xml" pubrevision="Nightly-${timestamp}_${parsers.version.main}" />
  49. <ivy:makepom ivyfile="${build.dir}/ivy.common.xml" pomfile="dist/parser.common.pom">
  50. <mapping conf="default" scope="compile"/>
  51. </ivy:makepom>
  52. <ivy:retrieve/>
  53. <ivy:publish
  54. pubrevision="Nightly-${timestamp}_${parsers.version.main}"
  55. status="release"
  56. overwrite="true"
  57. publishivy="false"
  58. artifactspattern="dist/parser.common.[ext]"
  59. resolver="upload-nightlies"/>
  60. <ivy:resolve file="ivy.irc.xml"/>
  61. <ivy:deliver deliverpattern="${build.dir}/ivy.irc.xml" pubrevision="Nightly-${timestamp}_${parsers.version.irc}" />
  62. <ivy:makepom ivyfile="${build.dir}/ivy.irc.xml" pomfile="dist/parser.irc.pom">
  63. <mapping conf="default" scope="compile"/>
  64. <dependency group="com.dmdirc.parser" artifact="common" version="Nightly-${timestamp}_${parsers.version.main}"/>
  65. </ivy:makepom>
  66. <ivy:retrieve/>
  67. <ivy:publish
  68. pubrevision="Nightly-${timestamp}_${parsers.version.irc}"
  69. status="release"
  70. overwrite="true"
  71. publishivy="false"
  72. artifactspattern="dist/parser.irc.[ext]"
  73. resolver="upload-nightlies"/>
  74. </target>
  75. <target name="publish-snapshot" depends="-get-git-version, -init-ivy">
  76. <tstamp>
  77. <format property="timestamp" pattern="yyyyddMM" />
  78. </tstamp>
  79. <ivy:resolve file="ivy.common.xml"/>
  80. <ivy:deliver deliverpattern="${build.dir}/ivy.common.xml" pubrevision="${parsers.version.main}-SNAPSHOT" />
  81. <ivy:makepom ivyfile="${build.dir}/ivy.common.xml" pomfile="dist/parser.common.pom">
  82. <mapping conf="default" scope="compile"/>
  83. </ivy:makepom>
  84. <ivy:retrieve/>
  85. <ivy:publish
  86. pubrevision="${parsers.version.main}-SNAPSHOT"
  87. status="release"
  88. overwrite="true"
  89. publishivy="false"
  90. artifactspattern="dist/parser.common.[ext]"
  91. resolver="upload-snapshot"/>
  92. <ivy:resolve file="ivy.irc.xml"/>
  93. <ivy:deliver deliverpattern="${build.dir}/ivy.irc.xml" pubrevision="${parsers.version.irc}-SNAPSHOT" />
  94. <ivy:makepom ivyfile="${build.dir}/ivy.irc.xml" pomfile="dist/parser.irc.pom">
  95. <mapping conf="default" scope="compile"/>
  96. <dependency group="com.dmdirc.parser" artifact="common" version="${parsers.version.main}-SNAPSHOT"/>
  97. </ivy:makepom>
  98. <ivy:retrieve/>
  99. <ivy:publish
  100. pubrevision="${parsers.version.irc}-SNAPSHOT"
  101. status="release"
  102. overwrite="true"
  103. publishivy="false"
  104. artifactspattern="dist/parser.irc.[ext]"
  105. resolver="upload-snapshot"/>
  106. </target>
  107. <target name="init-teamcity" depends="-init-ivy">
  108. <echo>Downloading private files, if this fails please pass username and</echo>
  109. <echo>password to ant using -Dusername=... -Dpassword=...</echo>
  110. <get src="http://www.dmdirc.com/private/nexus-teamcity.properties" dest="etc/nexus-teamcity.properties" username="${username}" password="${password}"/>
  111. <loadproperties srcFile="etc/nexus-teamcity.properties"/>
  112. <ivy:settings>
  113. <credentials host="nexus.dmdirc.com" realm="Sonatype Nexus Repository Manager" username="${nexus.user}" passwd="${nexus.pass}"/>
  114. </ivy:settings>
  115. </target>
  116. </project>