Use a dedicated tmp directory per build when publishing
Otherwise two concurrent product builds would simply stomp on each
others' feet in that tmp directory.
Change-Id: I3b711ce87aa19c380bd2704598b8f3501caab9bd
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
diff --git a/src/org/eclipse/egit/jenkins/Tools.groovy b/src/org/eclipse/egit/jenkins/Tools.groovy
index 6f3861e..dac863e 100644
--- a/src/org/eclipse/egit/jenkins/Tools.groovy
+++ b/src/org/eclipse/egit/jenkins/Tools.groovy
@@ -106,25 +106,26 @@
* to also copy to {@code publishDirectory}
*/
def void publishUpdateSite(String genie, String credentials, String sourceDirectory, String publishDirectory, String extraSource = null) {
+ def buildNumber = script.currentBuild.number;
script.sshagent ([credentials]) {
script.sh """
- ssh ${genie}@projects-storage.eclipse.org rm -rf ${publishDirectory}-tmp
- ssh ${genie}@projects-storage.eclipse.org mkdir -p ${publishDirectory}-tmp
- scp -r ${sourceDirectory}/* ${genie}@projects-storage.eclipse.org:${publishDirectory}-tmp
+ ssh ${genie}@projects-storage.eclipse.org rm -rf ${publishDirectory}-tmp${buildNumber}
+ ssh ${genie}@projects-storage.eclipse.org mkdir -p ${publishDirectory}-tmp${buildNumber}
+ scp -r ${sourceDirectory}/* ${genie}@projects-storage.eclipse.org:${publishDirectory}-tmp${buildNumber}
"""
if (extraSource) {
script.sh """
- scp ${extraSource} ${genie}@projects-storage.eclipse.org:${publishDirectory}-tmp/
+ scp ${extraSource} ${genie}@projects-storage.eclipse.org:${publishDirectory}-tmp${buildNumber}/
"""
}
// Remove former -old directory. There shouldn't be one, but let's be sure.
// Ensure the publishDirectory exists before moving it to -old.
- // Then remane -tmp and remove -old.
+ // Then rename -tmp and remove -old.
script.sh """
ssh ${genie}@projects-storage.eclipse.org rm -rf ${publishDirectory}-old
ssh ${genie}@projects-storage.eclipse.org mkdir -p ${publishDirectory}
ssh ${genie}@projects-storage.eclipse.org mv ${publishDirectory} ${publishDirectory}-old
- ssh ${genie}@projects-storage.eclipse.org mv ${publishDirectory}-tmp ${publishDirectory}
+ ssh ${genie}@projects-storage.eclipse.org mv ${publishDirectory}-tmp${buildNumber} ${publishDirectory}
ssh ${genie}@projects-storage.eclipse.org rm -rf ${publishDirectory}-old
"""
}