This commit is contained in:
Philip Ridout 2017-05-06 11:19:15 +01:00
commit 312e3e007b
3 changed files with 33 additions and 28 deletions

View File

@ -35,8 +35,9 @@ import sys
import time import time
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
appveyor_build_url = 'https://ci.appveyor.com/project/TomasGroth/openlp/build' appveyor_build_url = 'https://ci.appveyor.com/project/OpenLP/{project}/build'
appveyor_api_url = 'https://ci.appveyor.com/api/projects/TomasGroth/openlp' appveyor_api_url = 'https://ci.appveyor.com/api/projects/OpenLP/{project}'
appveyor_log_url = 'https://ci.appveyor.com/api/buildjobs/{buildid}/log'
webhook_element = \ webhook_element = \
{ {
@ -84,7 +85,7 @@ def get_version():
return version_string, version return version_string, version
def get_yml(branch): def get_yml(branch, build_type):
""" """
Returns the content of appveyor.yml and inserts the branch to be build Returns the content of appveyor.yml and inserts the branch to be build
""" """
@ -92,7 +93,7 @@ def get_yml(branch):
yml_text = f.read() yml_text = f.read()
f.close() f.close()
yml_text = yml_text.replace('BRANCHNAME', branch) yml_text = yml_text.replace('BRANCHNAME', branch)
if 'openlp-core/openlp/trunk' in branch: if build_type in ['openlp', 'trunk']:
yml_text = yml_text.replace('BUILD_DOCS', '$TRUE') yml_text = yml_text.replace('BUILD_DOCS', '$TRUE')
else: else:
yml_text = yml_text.replace('BUILD_DOCS', '$FALSE') yml_text = yml_text.replace('BUILD_DOCS', '$FALSE')
@ -115,23 +116,28 @@ def hook(webhook_url, yml):
print(responce.read().decode('utf-8')) print(responce.read().decode('utf-8'))
def get_appveyor_build_url(branch): def get_appveyor_build_url(build_type):
""" """
Get the url of the build. Get the url of the build.
""" """
responce = urllib.request.urlopen(appveyor_api_url) responce = urllib.request.urlopen(appveyor_api_url.format(project=build_type))
json_str = responce.read().decode('utf-8') json_str = responce.read().decode('utf-8')
build_json = json.loads(json_str) build_json = json.loads(json_str)
build_url = '%s/%s' % (appveyor_build_url, build_json['build']['version']) build_url = '%s/%s' % (appveyor_build_url.format(project=build_type), build_json['build']['version'])
print('Check this URL for build status: %s' % build_url) print(build_url.format(project=build_type))
print(appveyor_log_url.format(buildid=build_json['build']['jobs'][0]['jobId']))
if len(sys.argv) != 3: if len(sys.argv) != 4:
print('Usage: %s <webhook-url> <branch>' % sys.argv[0]) print('Invalid number of arguments\nUsage: %s <webhook-url> <branch> <dev|trunk|openlp>' % sys.argv[0])
else: else:
webhook_url = sys.argv[1] webhook_url = sys.argv[1]
branch = sys.argv[2] branch = sys.argv[2]
hook(webhook_url, get_yml(branch)) build_type = sys.argv[3]
if build_type not in ['dev', 'trunk', 'openlp']:
print('Invalid build type\nUsage: %s <webhook-url> <branch> <dev|trunk|openlp>' % sys.argv[0])
exit()
hook(webhook_url, get_yml(branch, build_type))
# Wait 5 seconds to make sure the hook has been triggered # Wait 5 seconds to make sure the hook has been triggered
time.sleep(5) time.sleep(5)
get_appveyor_build_url(branch) get_appveyor_build_url(build_type)

View File

@ -12,21 +12,21 @@ environment:
install: install:
# Install dependencies from pypi # Install dependencies from pypi
- "%PYTHON%\\python.exe -m pip install sqlalchemy alembic chardet beautifulsoup4 Mako nose mock pyodbc psycopg2 pypiwin32 pyenchant" - "%PYTHON%\\python.exe -m pip install sqlalchemy alembic chardet beautifulsoup4 Mako nose mock pyodbc==4.0.8 psycopg2 pypiwin32 pyenchant"
# Install mysql dependency # Install mysql dependency
- "%PYTHON%\\python.exe -m pip install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df" - "%PYTHON%\\python.exe -m pip install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df"
# Download and install lxml and pyicu (originally from http://www.lfd.uci.edu/~gohlke/pythonlibs/) # Download and install lxml and pyicu (originally from http://www.lfd.uci.edu/~gohlke/pythonlibs/)
- "%PYTHON%\\python.exe -m pip install https://get.openlp.org/win-sdk/lxml-3.6.4-cp34-cp34m-win32.whl" - "%PYTHON%\\python.exe -m pip install https://get.openlp.org/win-sdk/lxml-3.6.4-cp34-cp34m-win32.whl"
- "%PYTHON%\\python.exe -m pip install https://get.openlp.org/win-sdk/PyICU-1.9.5-cp34-cp34m-win32.whl" - "%PYTHON%\\python.exe -m pip install https://get.openlp.org/win-sdk/PyICU-1.9.5-cp34-cp34m-win32.whl"
# Download and install PyQt5 # Download and install PyQt5
- curl -L -O http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.5.1/PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe - appveyor DownloadFile http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.5.1/PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe
- PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe /S - PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe /S
# Download and unpack mupdf # Download and unpack mupdf
- curl -O http://mupdf.com/downloads/archive/mupdf-1.9a-windows.zip - appveyor DownloadFile http://mupdf.com/downloads/archive/mupdf-1.9a-windows.zip
- 7z x mupdf-1.9a-windows.zip - 7z x mupdf-1.9a-windows.zip
- cp mupdf-1.9a-windows/mupdf.exe openlp-branch/mupdf.exe - cp mupdf-1.9a-windows/mupdf.exe openlp-branch/mupdf.exe
# Download and unpack mediainfo # Download and unpack mediainfo
- curl -O https://mediaarea.net/download/binary/mediainfo/0.7.90/MediaInfo_CLI_0.7.90_Windows_i386.zip - appveyor DownloadFile https://mediaarea.net/download/binary/mediainfo/0.7.90/MediaInfo_CLI_0.7.90_Windows_i386.zip
- mkdir MediaInfo - mkdir MediaInfo
- 7z x -oMediaInfo MediaInfo_CLI_0.7.90_Windows_i386.zip - 7z x -oMediaInfo MediaInfo_CLI_0.7.90_Windows_i386.zip
- cp MediaInfo\\MediaInfo.exe openlp-branch\\MediaInfo.exe - cp MediaInfo\\MediaInfo.exe openlp-branch\\MediaInfo.exe
@ -43,15 +43,15 @@ test_script:
after_test: after_test:
# This is where we create a package using PyInstaller # This is where we create a package using PyInstaller
# First get PyInstaller # First get PyInstaller
- curl -L -O https://github.com/pyinstaller/pyinstaller/releases/download/v3.2/PyInstaller-3.2.zip - appveyor DownloadFile https://github.com/pyinstaller/pyinstaller/releases/download/v3.2/PyInstaller-3.2.zip
- 7z x PyInstaller-3.2.zip - 7z x PyInstaller-3.2.zip
# Install PyInstaller dependencies # Install PyInstaller dependencies
- "%PYTHON%\\python.exe -m pip install future pefile" - "%PYTHON%\\python.exe -m pip install future pefile"
# Download and install Inno Setup - used for packaging # Download and install Inno Setup - used for packaging
- curl -L -O http://www.jrsoftware.org/download.php/is-unicode.exe - appveyor DownloadFile http://www.jrsoftware.org/download.php/is-unicode.exe
- is-unicode.exe /VERYSILENT /SUPPRESSMSGBOXES /SP- - is-unicode.exe /VERYSILENT /SUPPRESSMSGBOXES /SP-
# Download and unpack portable-bundle # Download and unpack portable-bundle
- curl -O https://get.openlp.org/win-sdk/portable-setup.7z - appveyor DownloadFile https://get.openlp.org/win-sdk/portable-setup.7z
- 7z x portable-setup.7z - 7z x portable-setup.7z
# Disabled portable installers - can't figure out how to make them silent # Disabled portable installers - can't figure out how to make them silent
# - curl -L -O http://downloads.sourceforge.net/project/portableapps/PortableApps.com%20Installer/PortableApps.comInstaller_3.4.4.paf.exe # - curl -L -O http://downloads.sourceforge.net/project/portableapps/PortableApps.com%20Installer/PortableApps.comInstaller_3.4.4.paf.exe
@ -61,7 +61,7 @@ after_test:
# - curl -L -O http://downloads.sourceforge.net/project/portableapps/NSIS%20Portable/NSISPortable_3.0_English.paf.exe # - curl -L -O http://downloads.sourceforge.net/project/portableapps/NSIS%20Portable/NSISPortable_3.0_English.paf.exe
# - NSISPortable_3.0_English.paf.exe /S # - NSISPortable_3.0_English.paf.exe /S
# Get the packaging code # Get the packaging code
- curl -L http://bazaar.launchpad.net/~openlp-core/openlp/packaging/tarball -o packaging.tar.gz - appveyor DownloadFile http://bazaar.launchpad.net/~openlp-core/openlp/packaging/tarball -FileName packaging.tar.gz
- 7z e packaging.tar.gz - 7z e packaging.tar.gz
- 7z x packaging.tar - 7z x packaging.tar
- mv ~openlp-core/openlp/packaging packaging - mv ~openlp-core/openlp/packaging packaging
@ -74,7 +74,7 @@ after_test:
7z x documentation.tar 7z x documentation.tar
mv ~openlp-core/openlp/documentation documentation mv ~openlp-core/openlp/documentation documentation
cd packaging cd packaging
&"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update --skip-translations -c windows/config-appveyor.ini -b ../openlp-branch -d ../documentation --portable &"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update -c windows/config-appveyor.ini -b ../openlp-branch -d ../documentation --portable
} else { } else {
cd packaging cd packaging
&"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update --skip-translations -c windows/config-appveyor.ini -b ../openlp-branch --portable &"$env:PYTHON\python.exe" builders/windows-builder.py --skip-update --skip-translations -c windows/config-appveyor.ini -b ../openlp-branch --portable

View File

@ -59,14 +59,13 @@ class OpenLPJobs(object):
Branch_Pull = 'Branch-01-Pull' Branch_Pull = 'Branch-01-Pull'
Branch_Functional = 'Branch-02-Functional-Tests' Branch_Functional = 'Branch-02-Functional-Tests'
Branch_Interface = 'Branch-03-Interface-Tests' Branch_Interface = 'Branch-03-Interface-Tests'
Branch_Windows_Functional = 'Branch-04a-Windows_Functional_Tests' Branch_PEP = 'Branch-04a-Code_Analysis'
Branch_Windows_Interface = 'Branch-04b-Windows_Interface_Tests' Branch_Coverage = 'Branch-04b-Test_Coverage'
Branch_PEP = 'Branch-05a-Code_Analysis' Branch_Pylint = 'Branch-04c-Code_Analysis2'
Branch_Coverage = 'Branch-05b-Test_Coverage' Branch_AppVeyor = 'Branch-05-AppVeyor-Tests'
Branch_Pylint = 'Branch-05c-Code_Analysis2'
Jobs = [Branch_Pull, Branch_Functional, Branch_Interface, Branch_Windows_Functional, Branch_Windows_Interface, Jobs = [Branch_Pull, Branch_Functional, Branch_Interface, Branch_PEP, Branch_Coverage, Branch_Pylint,
Branch_PEP, Branch_Coverage, Branch_Pylint] Branch_AppVeyor]
class Colour(object): class Colour(object):