Merge pull request #298 from kiwix/flatpak_release

Flatpak release
This commit is contained in:
Matthieu Gautier 2019-03-19 16:26:37 +01:00 committed by GitHub
commit 0a768a2aac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 18 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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'