mirror of
https://gitlab.com/openlp/runners.git
synced 2024-12-22 03:12:49 +00:00
Add a script to upload the OpenLP version to get.openlp.org
This commit is contained in:
parent
5a525e4b5f
commit
59d5ceb146
@ -8,6 +8,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive \
|
|||||||
python3-websockets python3-webob python3-waitress python3-requests python3-pymediainfo \
|
python3-websockets python3-webob python3-waitress python3-requests python3-pymediainfo \
|
||||||
python3-qtawesome python3-opengl python3-appdirs python3-vlc python3-zeroconf python3-pip \
|
python3-qtawesome python3-opengl python3-appdirs python3-vlc python3-zeroconf python3-pip \
|
||||||
python3-flake8 python3-flask python3-flask-cors python3-distro flake8 mediainfo mupdf-tools xvfb \
|
python3-flake8 python3-flask python3-flask-cors python3-distro flake8 mediainfo mupdf-tools xvfb \
|
||||||
python3-pytestqt twine
|
python3-pytestqt python3-paramiko twine
|
||||||
ADD fixpaths.py /usr/bin/fixpaths
|
ADD fixpaths.py /usr/bin/fixpaths
|
||||||
RUN chmod a+x /usr/bin/fixpaths
|
RUN chmod a+x /usr/bin/fixpaths
|
||||||
|
ADD uploadversion.py /usr/bin/uploadversion
|
||||||
|
RUN chmod a+x /usr/bin/uploadversion
|
||||||
|
94
uploadversion.py
Normal file
94
uploadversion.py
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# ---------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2020 OpenLP Developers #
|
||||||
|
# ---------------------------------------------------------------------- #
|
||||||
|
# This program is free software: you can redistribute it and/or modify #
|
||||||
|
# it under the terms of the GNU General Public License as published by #
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or #
|
||||||
|
# (at your option) any later version. #
|
||||||
|
# #
|
||||||
|
# This program is distributed in the hope that it will be useful, #
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||||
|
# GNU General Public License for more details. #
|
||||||
|
# #
|
||||||
|
# You should have received a copy of the GNU General Public License #
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
|
||||||
|
##########################################################################
|
||||||
|
"""
|
||||||
|
A script to get the OpenLP version from the source code and upload it to the appropriate file in
|
||||||
|
https://get.openlp.org/versions/
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
from contextlib import contextmanager
|
||||||
|
from io import StringIO
|
||||||
|
from subprocess import PIPE, CalledProcessError, run
|
||||||
|
|
||||||
|
from paramiko.client import SSHClient, AutoAddPolicy
|
||||||
|
from paramiko.rsakey import RSAKey
|
||||||
|
|
||||||
|
|
||||||
|
OPENLP_SERVER = 'openlp.io'
|
||||||
|
OPENLP_USER = 'openlp'
|
||||||
|
OPENLP_KEY = RSAKey.from_private_key(StringIO(os.environ['SSH_KEY']))
|
||||||
|
VERSIONS_DIR = '/home/{user}/sites/get.openlp.org/www/versions/'.format(user=OPENLP_USER)
|
||||||
|
|
||||||
|
|
||||||
|
def get_version():
|
||||||
|
"""Run setup.py and get the version number"""
|
||||||
|
try:
|
||||||
|
result = run(['python3', 'setup.py', '--version'], stdout=PIPE)
|
||||||
|
return result.stdout.strip().decode('utf8')
|
||||||
|
except CalledProcessError:
|
||||||
|
return '0.0.0'
|
||||||
|
|
||||||
|
|
||||||
|
def get_version_file(full_version):
|
||||||
|
"""Return the correct version file for the version"""
|
||||||
|
bits = full_version.split('.dev')
|
||||||
|
current_version = {
|
||||||
|
'full': full_version,
|
||||||
|
'version': bits[0],
|
||||||
|
'build': full_version.split('+')[1] if '+' in full_version else None
|
||||||
|
}
|
||||||
|
if current_version['build']:
|
||||||
|
return 'nightly_version.txt'
|
||||||
|
elif int(current_version['version'].split('.')[1]) % 2 != 0:
|
||||||
|
return 'dev_version.txt'
|
||||||
|
else:
|
||||||
|
return 'version.txt'
|
||||||
|
|
||||||
|
|
||||||
|
@contextmanager
|
||||||
|
def sftp_connect():
|
||||||
|
"""Create an SSH connection to the server"""
|
||||||
|
client = SSHClient()
|
||||||
|
client.set_missing_host_key_policy(AutoAddPolicy())
|
||||||
|
client.load_system_host_keys()
|
||||||
|
client.connect(OPENLP_SERVER, username=OPENLP_USER, pkey=OPENLP_KEY)
|
||||||
|
yield client.open_sftp()
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
|
||||||
|
def write_version_file(version, version_file):
|
||||||
|
remote_filename = VERSIONS_DIR + version_file
|
||||||
|
with sftp_connect() as sftp_client:
|
||||||
|
remote_file = sftp_client.file(remote_filename, 'w')
|
||||||
|
remote_file.write(version)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Run the script"""
|
||||||
|
version = get_version()
|
||||||
|
print('Version: {version}'.format(version=version))
|
||||||
|
version_file = get_version_file(version)
|
||||||
|
print('Version file: {version_file}'.format(version_file=version_file))
|
||||||
|
write_version_file(version, version_file)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user