diff --git a/appveyor.yml b/appveyor.yml index f0372efcc..a51b3d52c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,11 +23,16 @@ # password: # secure: $#(JFDA)jQ@#$ +environment: + GH_TOKEN: + secure: dYnBDQkiY5oVjIlswzBX9BJigNtBGXgGlp1tK3XbHzrDEDrs2vaKD5m+Oz5OSz1C + # scripts that run after cloning repository install: - ps: (new-object net.webclient).DownloadFile('https://raw.github.com/pypa/pip/master/contrib/get-pip.py', 'C:/get-pip.py') - "C:/Python27/python.exe C:/get-pip.py" - "C:/Python27/Scripts/pip.exe install pyjavaproperties" + - "C:/Python27/Scripts/pip.exe install github3.py" #---------------------------------# # build configuration # @@ -62,14 +67,16 @@ artifacts: # scripts to run before deployment before_deploy: -- cd projects/mtg/bin -- "C:/Python27/python.exe createWindowsZip.py" + - cd projects/mtg/bin + - "C:/Python27/python.exe createWindowsZip.py" + - cd ../../.. # scripts to run after deployment after_deploy: # to run your custom scripts instead of provider deployments deploy_script: + - "C:/Python27/python.exe uploadBinary.py -t %GH_TOKEN% -s %APPVEYOR_REPO_COMMIT% -l projects\mtg\bin\Wagic-windows.zip -r Wagic-windows -b %APPVEYOR_REPO_BRANCH%" # to disable deployment #deploy: off diff --git a/projects/mtg/bin/createWindowsZip.py b/projects/mtg/bin/createWindowsZip.py index f550bdaf5..f89c885a7 100644 --- a/projects/mtg/bin/createWindowsZip.py +++ b/projects/mtg/bin/createWindowsZip.py @@ -30,11 +30,9 @@ def createStandardResFile(): cmd = 'python createResourceZip.py -n ' + getFilename('core') + '.zip' os.chdir("Res") os.system(cmd) -# os.system("python createResourceZip.py -n resources.zip") os.chdir("..") print "Creating Windows Package File" - filename = getFilename('Wagic-windows') + '.zip' - createWindowsZipFile( filename ) + createWindowsZipFile( 'Wagic-windows.zip' ) print >> sys.stderr, 'Created Resource Package for Standard Distribution: {0}'.format( filename) class ZipUtilities: @@ -68,13 +66,7 @@ def main(): (options, args) = parser.parse_args() - if (options.platform): - if (options.platform == "ios"): - createIosResFile() - else: - createStandardResFile() - else: - createStandardResFile() + createStandardResFile() if __name__ == "__main__": main() diff --git a/upload-binaries.py b/upload-binaries.py new file mode 100644 index 000000000..7434edc06 --- /dev/null +++ b/upload-binaries.py @@ -0,0 +1,50 @@ +import sys +import os +import zipfile +from pyjavaproperties import Properties +from optparse import OptionParser +from github3 import login + + +def suffixFilename(filename, build): + p = Properties(); + p.load(open('projects/mtg/build.number.properties')); + minor = p['build.minor']; + major = p['build.major']; + point = p['build.point']; + name, extension = os.path.splitext(filename) + filename = name + '-' + major + minor + point + '-' + build + extension + return filename + +def main(): + parser = OptionParser() + parser.add_option("-t", "--token", help="TOKEN: specify authentication token to use", metavar="TOKEN", dest="token") + parser.add_option("-s", "--sha", help="SHA: specify commit SHA", metavar="SHA", dest="sha") + parser.add_option("-l", "--local", help="FILE: specify local file path to upload", metavar="LOCAL", dest="local") + parser.add_option("-r", "--remote", help="NAME: specify remote asset name in the release.", metavar="REMOTE", dest="remote") + parser.add_option("-b", "--branch", help="BRANCH: specify branch of the commit", metavar="BRANCH", dest="branch") + + (options, args) = parser.parse_args() + + if (options.token and options.sha and options.local and options.remote and (options.branch == 'master' or options.branch == 'appveyor')): + gh = login(token = options.token) + else: + parser.print_help() + return + + repository = gh.repository('WagicProject', 'wagic') + # find reference + ref = gh.ref('tags/latest-master') + if(ref) + ref.update(options.sha) + + for r in repository.iter_releases(): + if r.name == 'latest-master' : +# filename = suffixFilename(options.remote, options.build) + filename = options.remote + with open(options.local, 'rb') as fd: + r.upload_asset('application/zip', filename , fd) + + +if __name__ == "__main__": + main()