Skip to content
Snippets Groups Projects
Commit 4ec8fadf authored by kaloyane's avatar kaloyane
Browse files

added: script that

1) auto uploads sprint binaries to the "Sprint Releases"  page in Confluence
2) generates Confluence text to publish on the "Sprint Releases" page

SVN: 20893
parent 1fbc00a6
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/python
from __future__ import with_statement
from datetime import date
import sys, string, xmlrpclib, re, os, getpass
DOWNLOAD_FOLDER="./tmp/"
confluenceToken = None
confluenceServer = xmlrpclib.ServerProxy('https://wiki-bsse.ethz.ch:8443/rpc/xmlrpc')
wikiText = ""
def printWiki(text=""):
global wikiText
wikiText += text
wikiText += "\n"
def logIntoConfluence():
global confluenceToken
user = getpass.getuser()
print "Please speficy Confluence password for user ", user
password = getpass.getpass()
confluenceToken = confluenceServer.confluence1.login(user, password)
if confluenceToken is None:
exit("Could not login page " + spacekey + ":" + pagetitle)
def uploadReleaseBinaryToConfluence(filename):
# ugly, but I don't want to spend more time here
filepath = DOWNLOAD_FOLDER + "/" + filename
with open(filepath, 'rb') as f:
data = f.read(); # slurp all the data
spacekey="bis"
pagetitle="Sprint Releases"
if confluenceToken is None:
logIntoConfluence()
page = confluenceServer.confluence1.getPage(confluenceToken, spacekey, pagetitle)
if page is None:
exit("Could not find page " + spacekey + ":" + pagetitle)
attachment = {}
attachment['fileName'] = os.path.basename(filename)
attachment['contentType'] = 'application/zip'
print "Uploading {0} to confluence......".format(filename)
confluenceServer.confluence1.addAttachment(confluenceToken, page['id'], attachment, xmlrpclib.Binary(data))
def fetchBinaries(version):
print "Fetching {0} binaries from server ...".format(version)
os.system("mkdir -p " + DOWNLOAD_FOLDER)
os.system("rm {0}/*.zip".format(DOWNLOAD_FOLDER))
os.system("scp sprint:~/fileserver/sprint_builds/openBIS/*-{0}*/*.zip {1}".format(version, DOWNLOAD_FOLDER))
def printVersion(version):
today = date.today().strftime("%d %B %Y")
printWiki("h2. Version {0} ({1})".format(version, today))
def processFile(linkName, filePattern, version):
fileName = findFile(filePattern + "-" + version)
uploadReleaseBinaryToConfluence(fileName)
printWiki("* [{0}|^{1}] ".format(linkName, fileName))
def uploadToConfluenceAndPrintPageText(version):
printVersion(version)
printWiki()
printWiki("h5. openBIS Generic Framework")
printWiki()
processFile("Application Server (AS)", "openBIS-server", version)
processFile("Data Store Server (DSS)", "datastore_server", version)
processFile("DSS Client", "dss_client", version)
printWiki("* [Documentation|^CISDDoc-{0}.html.zip]".format(version))
printWiki()
printWiki('h5. openBIS for High Content Screening')
printWiki()
processFile("Application Server (AS)", "openBIS-server-screening", version)
processFile("Data Store Server (DSS)", "datastore_server-screening", version)
processFile("API", "screening-api", version)
def findFile(filePattern):
for file in os.listdir(DOWNLOAD_FOLDER):
if file.startswith(filePattern):
return file
if __name__ == '__main__':
if len(sys.argv) < 2:
exit("""
Usage: {0} <SPRINT-NUMBER>
Example command: {0} S104
""".format(sys.argv[0]))
version=sys.argv[1]
fetchBinaries(version)
uploadToConfluenceAndPrintPageText(version)
print "===================================================================="
print " Paste the following text on the Sprint Releases page in confluence "
print "===================================================================="
print wikiText
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment