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.

BuildAll.sh 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #!/bin/sh
  2. # cron doesn't seem to like doing this iself...
  3. . /etc/profile
  4. # Used for nightly.log to help diagnosing problems
  5. env
  6. # Path to WWW Directory
  7. WWWDIR="/home/dmdirc/www"
  8. # Path to trunk
  9. MYDIR="/home/dmdirc/google"
  10. # Path to scripts
  11. SCRIPTDIR="/home/dmdirc/scripts"
  12. # Path to ant binary
  13. ANT="/usr/bin/ant"
  14. # Path to svn binary
  15. SVN="/usr/bin/svn"
  16. # Path to jar binary
  17. JAR="/usr/bin/jar"
  18. # Where are the bamboo log files?
  19. BAMBOO=/home/dmdirc/Bamboo/xml-data/builds/DMDIRC-NIGHTLY/download-data/build_logs/
  20. cd ${MYDIR}
  21. # /bin/sh $MYDIR/oblong.sh "Nightly Build" "Build Started"
  22. cd $MYDIR/
  23. $SVN update
  24. SVNREV=`$SVN info | grep Revision`
  25. SVNREV=${SVNREV##*: }
  26. export DMDIRC_SVN=${SVNREV}
  27. # Substitute the version string
  28. awk '{gsub(/String VERSION = "SVN"/,"String VERSION = \"Nightly - SVN Rev: '${SVNREV}'\"");print}' ${MYDIR}/src/com/dmdirc/Main.java > ${MYDIR}/src/com/dmdirc/Main.java.tmp
  29. mv ${MYDIR}/src/com/dmdirc/Main.java.tmp ${MYDIR}/src/com/dmdirc/Main.java
  30. # Substitute the update channel
  31. awk '{gsub(/UpdateChannel UPDATE_CHANNEL = UpdateChannel.NONE/,"UpdateChannel UPDATE_CHANNEL = UpdateChannel.NIGHTLY");print}' ${MYDIR}/src/com/dmdirc/Main.java > ${MYDIR}/src/com/dmdirc/Main.java.tmp
  32. mv ${MYDIR}/src/com/dmdirc/Main.java.tmp ${MYDIR}/src/com/dmdirc/Main.java
  33. # This no longer exists
  34. ## Substitue the release date
  35. #awk '{gsub(/int RELEASE_DATE = 0/,"int RELEASE_DATE = '`date +%Y%m%d`'");print}' ${MYDIR}/src/com/dmdirc/Main.java > ${MYDIR}/src/com/dmdirc/Main.java.tmp
  36. #mv ${MYDIR}/src/com/dmdirc/Main.java.tmp ${MYDIR}/src/com/dmdirc/Main.java
  37. # Archive old nightlies
  38. if [ `date +%d` = "01" ]; then
  39. echo "Archiving Last Months Nightlies"
  40. OLDDIR=${WWWDIR}/nightly/old/`date -d yesterday +%B%y | tr "[:upper:]" "[:lower:]"`
  41. mkdir -p ${OLDDIR}
  42. mv -fv ${WWWDIR}/nightly/*_`date -d yesterday +%Y%m`??_* ${OLDDIR}
  43. mv -fv ${WWWDIR}/nightly/*-`date -d yesterday +%Y%m`??_* ${OLDDIR}
  44. rm -Rf ${WWWDIR}/nightly/*_latest*
  45. fi
  46. # The date/svn prefix to add to the end of the file names of stuff
  47. FILEDATA=`date +%Y%m%d`_${SVNREV}
  48. # Copy default settings from www to trunk for compile (if they exist)
  49. REVERTLIST=""
  50. if [ -e "${HOME}/www/updates/" ]; then
  51. for updatedir in `ls -1 src/com/dmdirc/config/defaults/`; do
  52. src="${HOME}/www/updates/${updatedir}"
  53. if [ -e ${src} ]; then
  54. REVERTLIST=${REVERTLIST}" src/com/dmdirc/config/defaults/${updatedir}/"
  55. cp -Rfv ${src}/* src/com/dmdirc/config/defaults/${updatedir}/
  56. fi;
  57. done
  58. fi;
  59. # Build plugins/jar
  60. $ANT -buildfile $MYDIR/build.xml -k clean jar
  61. # Now revert the trunk so as not to break updates.
  62. for updatedir in ${REVERTLIST}; do
  63. ${SVN} revert ${updatedir}/*
  64. done;
  65. PHP=`which php`
  66. if [ "${BAMBOO_INSTALL}" != "" -a -e "${BAMBOO}" ]; then
  67. export BAMBOO_DIR=${BAMBOO};
  68. export BAMBOO_BUILD=`ls -1 ${BAMBOO} | tail -n 1 | awk -F. '{print $1}'`
  69. echo "This is Bamboo Build: "${BAMBOO_BUILD};
  70. fi
  71. # Check if build failed
  72. if [ ! -e "$MYDIR/dist/DMDirc.jar" ]; then
  73. # Report failure
  74. echo "Build Failure."
  75. if [ -e "$SCRIPTDIR/nightly-failure.php" -a "${PHP}" != "" ]; then
  76. $PHP -q $SCRIPTDIR/nightly-failure.php
  77. fi
  78. else
  79. # Build installers
  80. cd "${MYDIR}/installer"
  81. ./release.sh --jar "${MYDIR}/dist/DMDirc.jar" --opt "--tag ${FILEDATA}" trunk
  82. cd "${MYDIR}"
  83. if [ ! -e "${MYDIR}/installer/output/DMDirc-Setup-${FILEDATA}.exe" -o ! -e "${MYDIR}/installer/output/DMDirc-Setup-${FILEDATA}.run" -o ! -e "${MYDIR}/installer/output/DMDirc-${FILEDATA}.dmg" -o ! -e "${MYDIR}/installer/output/DMDirc-${FILEDATA}.jar" ]; then
  84. # Report failure
  85. echo "Installer Build Failure."
  86. if [ -e "$SCRIPTDIR/nightly-failure.php" -a "${PHP}" != "" ]; then
  87. export DMDIRC_INSTALLERFAILURE=true;
  88. export BAMBOO_BUILD;
  89. $PHP -q $SCRIPTDIR/nightly-failure.php
  90. fi
  91. fi;
  92. # Add plugins to jar
  93. $JAR -uvf "dist/DMDirc.jar" plugins
  94. # Submit plugins to addons site
  95. if [ -e "${HOME}/www/addons/submitplugin.php" ]; then
  96. for plugin in `ls plugins/*.jar`; do
  97. $PHP ${HOME}/www/addons/submitplugin.php $plugin
  98. done;
  99. fi;
  100. # Move installers/jar to nightlies site
  101. FILENAME=DMDirc_${FILEDATA}.jar
  102. mv "${MYDIR}/installer/output/DMDirc-Setup-${FILEDATA}.exe" "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.exe"
  103. mv "${MYDIR}/installer/output/DMDirc-Setup-${FILEDATA}.run" "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.run"
  104. mv "${MYDIR}/installer/output/DMDirc-${FILEDATA}.dmg" "${WWWDIR}/nightly/DMDirc-${FILEDATA}.dmg"
  105. rm -Rf "${MYDIR}/installer/output/DMDirc-${FILEDATA}.jar"
  106. cp $MYDIR/dist/DMDirc.jar /home/dmdirc/www/nightly/$FILENAME
  107. if [ -e "${WWWDIR}/nightly/${FILENAME}" ]; then
  108. ln -sf ${WWWDIR}/nightly/${FILENAME} $WWWDIR/nightly/DMDirc_latest.jar
  109. fi;
  110. if [ -e "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.run" ]; then
  111. ln -sf "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.run" $WWWDIR/nightly/DMDirc-Setup_latest.run
  112. fi;
  113. if [ -e "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.exe" ]; then
  114. ln -sf "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.exe" $WWWDIR/nightly/DMDirc-Setup_latest.exe
  115. fi;
  116. if [ -e "${WWWDIR}/nightly/DMDirc-${FILEDATA}.dmg" ]; then
  117. ln -sf "${WWWDIR}/nightly/DMDirc-${FILEDATA}.dmg" $WWWDIR/nightly/DMDirc_latest.dmg
  118. fi;
  119. cd ${MYDIR}
  120. # /bin/sh $MYDIR/oblong.sh "Nightly Build" "Build Successful";
  121. # Do normal reports
  122. if [ "${IS_BAMBOO}" == "" ]; then
  123. /bin/sh $MYDIR/DoReports.sh
  124. fi;
  125. fi
  126. $SVN revert ${MYDIR}/src/com/dmdirc/Main.java