@@ -120,6 +120,37 @@ init_weekly(){
120120 init_version
121121}
122122
123+ purge_old_nightlies (){
124+ # ########################
125+ # PURGE OLDER NIGHTLIES #
126+ # ########################
127+
128+ rm -rf /tmp/purgeNightlies.sh
129+ cat << EOF > /tmp/purgeNightlies.sh
130+ #!/bin/bash
131+ # Max builds to keep around
132+ MAX_BUILDS=21
133+ cd \$ 1
134+ LISTING=\` ls -trd b*\`
135+ nbuilds=0
136+ for i in \$ LISTING; do
137+ nbuilds=\` expr \$ nbuilds + 1\`
138+ done
139+ echo "Total number of builds is \$ nbuilds"
140+
141+ while [ \$ nbuilds -gt \$ MAX_BUILDS ]; do
142+ oldest_dir=\` ls -trd b* | head -n1\`
143+ echo "rm -rf \$ oldest_dir"
144+ rm -rf \$ oldest_dir
145+ nbuilds=\` expr \$ nbuilds - 1\`
146+ echo "Number of builds is now \$ nbuilds"
147+ done
148+ EOF
149+ ssh ${SSH_MASTER} " rm -rf /tmp/purgeNightlies.sh"
150+ scp /tmp/purgeNightlies.sh ${SSH_MASTER} :/tmp
151+ ssh ${SSH_MASTER} " chmod +x /tmp/purgeNightlies.sh ; bash -e /tmp/purgeNightlies.sh /java/re/${ARCHIVE_PATH} "
152+ }
153+
123154init_nightly (){
124155 BUILD_KIND=" nightly"
125156 ARCHIVE_PATH=${PRODUCT_GF} /${PRODUCT_VERSION_GF} /nightly
@@ -144,21 +175,21 @@ promote_init(){
144175 fi
145176
146177 export PROMOTION_SUMMARY=${WORKSPACE_BUNDLES} /${BUILD_KIND} -promotion-summary.txt
147- rm -f $PROMOTION_SUMMARY
178+ rm -f ${ PROMOTION_SUMMARY}
148179 export JNET_DIR=${JNET_USER} @${JNET_STORAGE_HOST} :/dlc/${ARCHIVE_PATH}
149180 export JNET_DIR_HTTP=http://download.java.net/${ARCHIVE_PATH}
150181 export ARCHIVE_STORAGE_BUNDLES=/java/re/${ARCHIVE_MASTER_BUNDLES}
151182 export SSH_MASTER=${RE_USER} @${HUDSON_MASTER_HOST}
152183 export SSH_STORAGE=${RE_USER} @${STORAGE_HOST}
153184 export SCP=${SSH_STORAGE} :${ARCHIVE_STORAGE_BUNDLES}
154185 export ARCHIVE_URL=http://${STORAGE_HOST_HTTP} /java/re/${ARCHIVE_MASTER_BUNDLES}
155-
156186 init_storage_area
157187}
158188
159189promote_finalize (){
160190 create_symlinks
161191 create_index
192+ add_permission
162193 send_notification
163194}
164195
@@ -194,22 +225,21 @@ promote_weekly(){
194225
195226promote_nightly (){
196227 promote_init " nightly"
197- promote_bundle ${PROMOTED_BUNDLES } /web.zip ${PRODUCT_GF} -${PRODUCT_VERSION_GF} -web-${BUILD_ID} -${MDATE} .zip
198- promote_bundle ${PROMOTED_BUNDLES } /glassfish.zip ${PRODUCT_GF} -${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .zip
199- promote_bundle ${PROMOTED_BUNDLES } /nucleus-new.zip nucleus-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .zip
200- promote_bundle ${PROMOTED_BUNDLES } /version-info.txt version-info-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .txt
201- promote_bundle ${PROMOTED_BUNDLES } /changes.txt changes-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .txt
228+ promote_bundle ${NIGHTLY_PROMOTED_BUNDLES } /web.zip ${PRODUCT_GF} -${PRODUCT_VERSION_GF} -web-${BUILD_ID} -${MDATE} .zip
229+ promote_bundle ${NIGHTLY_PROMOTED_BUNDLES } /glassfish.zip ${PRODUCT_GF} -${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .zip
230+ promote_bundle ${NIGHTLY_PROMOTED_BUNDLES } /nucleus-new.zip nucleus-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .zip
231+ promote_bundle ${NIGHTLY_PROMOTED_BUNDLES } /version-info.txt version-info-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .txt
232+ promote_bundle ${NIGHTLY_PROMOTED_BUNDLES } /changes.txt changes-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .txt
202233 VERSION_INFO=" ${WORKSPACE_BUNDLES} /version-info-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .txt"
203- SVN_REVISION=` head -1 ${VERSION_INFO} | awk ' {print $2}' `
204- # record_svn_rev ${SVN_REVISION}
234+ SCM_REVISION=` head -1 ${VERSION_INFO} | cut -d " :" -f2 | tr " " " " `
205235 purge_old_nightlies
206236 # hook for the docker image of the nightly
207237 curl -H " Content-Type: application/json" \
208238 --data ' {"build": true}' \
209239 -X POST \
210240 -k \
211- https://registry.hub.docker.com/u/glassfish/nightly/trigger/945d55fc-1d4c-4043-8221-74185d9a4d53/
212- ssh $SSH_MASTER ` echo " echo $SVN_REVISION > /scratch/java_re/hudson/hudson_install/last_promoted_nightly_scm_revision" `
241+ https://registry.hub.docker.com/u/glassfish/nightly/trigger/945d55fc-1d4c-4043-8221-74185d9a4d53/
242+ ssh $SSH_MASTER ` echo " echo $SCM_REVISION > /scratch/java_re/hudson/hudson_install/last_promoted_nightly_scm_revision" `
213243 promote_finalize
214244}
215245
@@ -245,6 +275,9 @@ init_common(){
245275 PRODUCT_VERSION_GF=$PRODUCT_VERSION_GF .${MICRO_VERSION}
246276 fi
247277
278+ PROMOTED_JOB_URL=${HUDSON_URL} /job/${PROMOTED_JOB_NAME} /${PROMOTED_NUMBER}
279+ PROMOTED_BUNDLES=${PROMOTED_JOB_URL} /artifact/bundles/
280+
248281 IPS_REPO_URL=http://localhost
249282 IPS_REPO_DIR=${WORKSPACE} /promorepo
250283 IPS_REPO_PORT=16500
@@ -671,9 +704,28 @@ scp_jnet(){
671704 " scp /java/re/${ARCHIVE_MASTER_BUNDLES} /${file} ${JNET_DIR} /latest-${simple_name} "
672705}
673706
707+ create_promotion_changs (){
708+ rm ${WORKSPACE_BUNDLES} /${1} | true
709+ if [[ " nightly" == " ${BUILD_KIND} " ]]; then
710+ PREVIOUS_COMMIT=` cat ${HUDSON_HOME} /last_promoted_nightly_scm_revision`
711+ fi
712+ if [[ " weekly" == " ${BUILD_KIND} " ]]; then
713+ PREVIOUS_COMMIT=` cat ${HUDSON_HOME} /last_promoted_weekly_scm_revision`
714+ fi
715+ CURRENT_COMMIT=` head -1 ${WORKSPACE_BUNDLES} /version-info-${PRODUCT_VERSION_GF} -${BUILD_ID} -${MDATE} .txt | cut -d " :" -f2 | tr " " " " `
716+ if [ " ${CURRENT_COMMIT} " != " ${PREVIOUS_COMMIT} " ] ; then
717+ cd ${WORKSPACE} /glassfish
718+ git log --abbrev-commit --pretty=oneline ${PREVIOUS_COMMIT} ..${CURRENT_COMMIT} > ${WORKSPACE_BUNDLES} /${1}
719+ fi
720+ }
721+
674722promote_bundle (){
675723 printf " \n==== PROMOTE_BUNDLE (%s) ====\n\n" ${2}
676- curl ${1} > ${WORKSPACE_BUNDLES} /${2}
724+ if [[ ${1} == * " changes.txt" ]]; then
725+ create_promotion_changs ${2}
726+ else
727+ curl ${1} > ${WORKSPACE_BUNDLES} /${2}
728+ fi
677729 scp ${WORKSPACE_BUNDLES} /${2} ${SCP}
678730 scp_jnet ${WORKSPACE_BUNDLES} /${2}
679731 if [ " nightly" == " ${BUILD_KIND} " ]
725777MESSAGE
726778}
727779
780+ add_permission (){
781+
782+ ssh ${SSH_MASTER} \
783+ " ssh ${JNET_USER} @${JNET_STORAGE_HOST} 'cd /dlc/${PRODUCT_GF} /${PRODUCT_VERSION_GF} ;chmod o+r nightly/*;chmod o+r promoted/*'"
784+ }
785+
728786#
729787# Create index files on JNET_STORAGE_HOST for PRODUCT_GF.
730788#
731789create_index (){
732790
733791 # cp this script to master.
734- scp ` dirname $0 ` /common.sh ${SSH_MASTER} :/tmp
792+ scp ${WORKSPACE} /glassfish/main /common.sh ${SSH_MASTER} :/tmp
735793
736794 # cp script from ssh_master to JNET_STORAGE_HOST.
737795 ssh ${SSH_MASTER} \
0 commit comments