diff --git a/.travis.yml b/.travis.yml index f6f924f..c72a643 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,7 @@ script: else docker build -t kiwix/build -f travis/Dockerfile . fi - docker run -e PLATFORM -e NIGHTLY_DATE -e TRAVIS_EVENT_TYPE -e TRAVIS_BUILD_DIR -e DESKTOP_ONLY -e TRAVIS_TAG --device /dev/fuse --cap-add ALL --privileged kiwix/build + docker run -e PLATFORM -e NIGHTLY_DATE -e TRAVIS_EVENT_TYPE -e DESKTOP_ONLY -e TRAVIS_TAG --device /dev/fuse --cap-add ALL --privileged kiwix/build else if [[ $TRAVIS_OS_NAME = "linux" ]] then @@ -152,3 +152,9 @@ notifications: - "chat.freenode.net#kiwix" on_success: change on_failure: always + email: + recipients: + - contact@kiwix.org + - mgautier@kymeria.fr + on_success: change + on_failure: always diff --git a/appveyor/deploy.sh b/appveyor/deploy.sh index 0c58757..9f0fed5 100755 --- a/appveyor/deploy.sh +++ b/appveyor/deploy.sh @@ -2,11 +2,20 @@ set -e NIGHTLY_DATE=$(date +%Y-%m-%d) NIGHTLY_KIWIX_ARCHIVES_DIR=/c/projects/NIGHTLY_KIWIX_ARCHIVES/${NIGHTLY_DATE} +RELEASE_KIWIX_ARCHIVES_DIR=/c/projects/RELEASE_KIWIX_ARCHIVES SSH_KEY=C:\\projects\\kiwix-build\\appveyor\\nightlybot_id_key -#if [[ "$APPVEYOR_SCHEDULED_BUILD" = "True" ]] -#then +if [[ "$APPVEYOR_SCHEDULED_BUILD" = "True" ]] +then scp -vrp -i ${SSH_KEY} -o StrictHostKeyChecking=no \ ${NIGHTLY_KIWIX_ARCHIVES_DIR} \ ci@download.kiwix.org:/data/download/nightly -#fi +fi + +if [[ "$APPVEYOR_REPO_TAG" = "true" ]] +then + RELEASE_ARCHIVES=$(find $RELEASE_KIWIX_ARCHIVES_DIR -type f) + scp -vrp -i ${SSH_KEY} -o StrictHostKeyChecking=no \ + ${RELEASE_ARCHIVES} \ + ci@download.kiwix.org:/data/download/release/kiwix-desktop +fi diff --git a/appveyor/package_kiwix-desktop.sh b/appveyor/package_kiwix-desktop.sh index 00a250e..fdc3048 100644 --- a/appveyor/package_kiwix-desktop.sh +++ b/appveyor/package_kiwix-desktop.sh @@ -1,13 +1,21 @@ set -e -NIGHTLY_DATE=$(date +%Y-%m-%d) -NIGHTLY_KIWIX_ARCHIVES_DIR=/c/projects/NIGHTLY_KIWIX_ARCHIVES/${NIGHTLY_DATE} -KIWIX_ARCH_NAME=kiwix-desktop_$NIGHTLY_DATE.zip -KIWIX_DIR=kiwix-desktop_$NIGHTLY_DATE +if [[ "$APPVEYOR_REPO_TAG" = "false" ]] +then + NIGHTLY_DATE=$(date +%Y-%m-%d) + KIWIX_ARCHIVES_DIR=/c/projects/NIGHTLY_KIWIX_ARCHIVES/${NIGHTLY_DATE} + KIWIX_DIR=kiwix-desktop_windows_x64_$NIGHTLY_DATE +else + KIWIX_DESKTOP_VERSION=2.0-beta3 + KIWIX_ARCHIVES_DIR=/c/projects/RELEASE_KIWIX_ARCHIVES + KIWIX_DIR=kiwix-desktop_windows_x64_${KIWIX_DESKTOP_VERSION} +fi + +KIWIX_ARCH_NAME=${KIWIX_DIR}.zip mkdir $KIWIX_DIR -mkdir -p NIGHTLY_KIWIX_ARCHIVES_DIR +mkdir -p KIWIX_ARCHIVES_DIR cp /c/projects/kiwix-build/kiwix-desktop/Release/kiwix-desktop.exe $KIWIX_DIR /c/Qt/5.11/msvc2017_64/bin/windeployqt --compiler-runtime $KIWIX_DIR @@ -17,4 +25,4 @@ cp $MINGW64_EXTRA_DIR/bin/*.dll $KIWIX_DIR /c/Program\ Files\ \(x86\)/Windows\ Kits/10/bin/x64/signtool.exe sign -f appveyor/kiwix.pfx -p $win_certificate_password -t http://timestamp.verisign.com/scripts/timestamp.dll -d "Kiwix-desktop application" $KIWIX_DIR/kiwix-desktop.exe -7z a -tzip $NIGHTLY_KIWIX_ARCHIVES_DIR/$KIWIX_ARCH_NAME $KIWIX_DIR +7z a -tzip $KIWIX_ARCHIVES_DIR/$KIWIX_ARCH_NAME $KIWIX_DIR diff --git a/kiwixbuild/versions.py b/kiwixbuild/versions.py index 2f03282..b62c9ea 100644 --- a/kiwixbuild/versions.py +++ b/kiwixbuild/versions.py @@ -6,7 +6,7 @@ main_project_versions = { 'libzim': '4.0.5', 'zim-tools': '1.0.0', 'zimwriterfs': '1.2', - 'kiwix-desktop': '2.0-beta3' + 'kiwix-desktop': '2.0-beta3' # Also need to be change in appveyor/package_kiwix-desktop.sh } # This dictionnary specify what we need to build at each release process. diff --git a/travis/Dockerfile b/travis/Dockerfile index 59561ea..85f3cb4 100644 --- a/travis/Dockerfile +++ b/travis/Dockerfile @@ -72,7 +72,7 @@ COPY . kiwix-build/ RUN sudo chown -R travis:travis /home/travis/kiwix-build RUN pip3 install --user -e kiwix-build -ENV TRAVISCI_SSH_KEY /home/travis/kiwix-build/travis/travisci_builder_id_key +ENV TRAVIS_BUILD_DIR /home/travis/kiwix-build ENV TRAVIS_OS_NAME linux_artful CMD kiwix-build/travis/compile_all.py && kiwix-build/travis/deploy.sh diff --git a/travis/Dockerfile_flatpak b/travis/Dockerfile_flatpak index 8518e8c..36636b9 100644 --- a/travis/Dockerfile_flatpak +++ b/travis/Dockerfile_flatpak @@ -57,7 +57,7 @@ COPY . kiwix-build/ RUN sudo chown -R travis:travis /home/travis/kiwix-build RUN pip3 install --user -e kiwix-build -ENV TRAVISCI_SSH_KEY /home/travis/kiwix-build/travis/travisci_builder_id_key +ENV TRAVIS_BUILD_DIR /home/travis/kiwix-build ENV TRAVIS_OS_NAME linux_artful CMD kiwix-build/travis/compile_all.py && kiwix-build/travis/deploy.sh diff --git a/travis/compile_all.py b/travis/compile_all.py index 1c06ce5..2147437 100755 --- a/travis/compile_all.py +++ b/travis/compile_all.py @@ -21,6 +21,7 @@ PLATFORM = environ['PLATFORM'] TRAVIS_OS_NAME = environ['TRAVIS_OS_NAME'] HOME = Path(os.path.expanduser('~')) NIGHTLY_DATE = environ['NIGHTLY_DATE'] +KBUILD_SOURCE_DIR = Path(environ['TRAVIS_BUILD_DIR']) KIWIX_DESKTOP_ONLY = environ.get('DESKTOP_ONLY') == '1' BASE_DIR = HOME/"BUILD_{}".format(PLATFORM) @@ -33,10 +34,7 @@ NIGHTLY_ZIM_ARCHIVES_DIR = HOME/'NIGHTLY_ZIM_ARCHIVES'/NIGHTLY_DATE RELEASE_ZIM_ARCHIVES_DIR = HOME/'RELEASE_ZIM_ARCHIVES' DIST_KIWIX_ARCHIVES_DIR = HOME/'DIST_KIWIX_ARCHIVES' DIST_ZIM_ARCHIVES_DIR = HOME/'DIST_ZIM_ARCHIVES' -if 'TRAVISCI_SSH_KEY' in environ: - SSH_KEY = Path(environ['TRAVISCI_SSH_KEY']) -else: - SSH_KEY = Path(environ['TRAVIS_BUILD_DIR'])/'travis'/'travisci_builder_id_key' +SSH_KEY = KBUILD_SOURCE_DIR/'travis'/'travisci_builder_id_key' BIN_EXT = '.exe' if PLATFORM.startswith('win-') else '' @@ -54,6 +52,8 @@ EXPORT_FILES = { 'include/zim/**/*.h')) } +FLATPAK_GIT_REMOTE = 'git@github.com:flathub/org.kiwix.desktop.git' + _date = date.today().isoformat() def print_message(message, *args, **kwargs): @@ -244,6 +244,29 @@ def make_deps_archive(target, full=False): return relative_path/archive_name +def update_flathub_git(): + env = dict(os.environ) + env['GIT_SSH_COMMAND'] = 'ssh -o StrictHostKeyChecking=no -i {}'.format(SSH_KEY) + env['GIT_AUTHOR_NAME'] = env['GIT_COMMITTER_NAME'] = "KiwixBot" + env['GIT_AUTHOR_EMAIL'] = env['GIT_COMMITTER_EMAIL'] = "kiwixbot@kymeria.fr" + command = ['git', 'clone', FLATPAK_GIT_REMOTE] + subprocess.check_call(command, env=env, cwd=str(HOME)) + shutil.copy(str(BASE_DIR/'org.kiwix.desktop.json'), + str(HOME/'org.kiwix.desktop')) + patch_dir = KBUILD_SOURCE_DIR/'kiwixbuild'/'patches' + for dep in ('libaria2', 'mustache', 'pugixml', 'xapian'): + for f in patch_dir.glob('{}_*.patch'.format(dep)): + shutil.copy(str(f), str(HOME/'org.kiwix.desktop'/'patches')) + command = ['git', 'add', '-A', '.'] + subprocess.check_call(command, env=env, cwd=str(HOME/'org.kiwix.desktop')) + command = ['git', 'commit', '-m', + 'Update to version {}'.format(main_project_versions['kiwix-desktop'])] + subprocess.check_call(command, env=env, cwd=str(HOME/'org.kiwix.desktop')) + command = ['git', 'push'] + subprocess.check_call(command, env=env, cwd=str(HOME/'org.kiwix.desktop')) + + + def scp(what, where): print_message("Copy {} to {}", what, where) command = ['scp', '-o', 'StrictHostKeyChecking=no', @@ -398,7 +421,6 @@ for target in TARGETS: make_release=True, make_dist=True) - # We have build everything. Now create archives for public deployement. if make_release and PLATFORM == 'native_dyn': for target in TARGETS: @@ -435,6 +457,8 @@ elif PLATFORM == 'armhf_static': make_archive('kiwix-tools', 'linux-armhf') elif PLATFORM == 'i586_static': make_archive('kiwix-tools', 'linux-i586') +elif make_release and PLATFORM == 'flatpak': + update_flathub_git() elif PLATFORM.startswith('android') and 'kiwix-android' in TARGETS: APK_NAME = "kiwix-{}".format(PLATFORM) source_debug_dir = HOME/'BUILD_android'/'kiwix-android'/'app'/'build'/'outputs'/'apk'/'kiwix'/'debug'