1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

32 Commits

Author SHA1 Message Date
Mick Sayson
8abe8320d2 chore(CI): Use docker for CI scripts
Motiviation:
* Reproducing issues in CI is currently difficult
* Predicting issues in CI is currently difficult if you are not on
  ubuntu 18.04
* Reproducing issues submitted from other distros is currently done by
  creating a VM of that distro and building qtox for it locally
* Documentation for how to build on different distros is out of date
* Issues on non-ubuntu distributions are not caught by CI
* Cross compiling for windows locally is not trivial
* Iterating when working with custom build scripts is slow, scripts
  don't necessarily support re-running without re-starting the docker
  container and re-building qtox again
* Updating dependencies is a pain

Changes:
* docker-compose file has been added to the root of our repo.
  After `docker compose run --rm ubuntu` (or other supported distros),
  you are ready to compile and run qtox
* Dependencies are owned by dependency install scripts in buildscripts/.
  This allows us to use the same exact dependencies in our
  OSX/windows/linux scripts
* New docker images have been added for a variety of distributions.
  These are now run in CI in a variety of configurations
  * Docker images are cached in CI so rebuild time for the majority of
    jobs is quite quick
* Build scripts have been trimmed to leverage state of docker
  containers.
  * Windows build script no longer installs anything, dependencies are
    now managed by the windows_builder docker images
  * Build scripts should now be easily re-runnable. Usage is now `docker
    compose run --rm <image>` and then run the scripts
* All artifacts are now uploaded to github after build, this means we
  can take an appimage/flatpak/exe/dmg for any given PR and try it out
  without having to build it ourselves

Notes:
* Docker image size is quite important. We have a maximum of 5GB cache
  space on github actions. The majority of the linux distro docker
  images cache at ~300-400MB, which gives us room to test ~6 distros
  after accounting for the sizes of flatpak/windows docker images
* Docker layer ordering is relatively intentional. Approximate order
  should be that large dependencies that change infrequently should be
  farther up. This lowers the amount of rebuilding we have to do when
  dependencies are updated
* download_xxx.sh scripts are the cleanest way I could find to implement
  a shared dependency map between osx scripts and docker containers.
  Although it would be nice to have a single dependency mapping file,
  splitting it into individual scripts allows us to only rebuild some
  docker layers when dependencies are updated.
* Github actions are split between docker image building and docker
  image use. This allows us to re-use the same docker images for
  multiple jobs, but only build it once
  * Unfortunately I could not find a way to de-duplicate the stitching
    between jobs, so we have a lot of copy pasta in that area
2021-12-19 14:56:05 -08:00
Anthony Bilinski
12ac833254
fix(appimage): Include additional needed glib for RH based distros
Add old glib to work with our old gnutls on redhat based systems.

Generally we would want to avoid providing our old libs that the distro's newer
libs that we use depend on, which would include harfbuzz in this case for glib,
but including harfbuzz breaks libfreetype on newer distros like arch.

Other libs that we use from the system with dependencies that we provide include
are libfreetype, libXdmcp, and libICE, but that is unchanged here.

Fix #6339
2021-10-27 18:55:58 -07:00
Anthony Bilinski
cb8a095fd2
fix(appimage): Patch manually copied libs to include rpath for local dir
linuxdeployqt already does this for its copied libs. Required for included libs to find libs inside the appimage that they depend on.
2021-10-27 17:54:29 -07:00
Anthony Bilinski
cb6fd88239
refactor(appimage): List manual libs and copy iteratively
Also preserve symlinks while copying with -P to avoid creating duplicate
files from symlinks on build env system.
2021-10-27 17:53:25 -07:00
Anthony Bilinski
aee189d46d
fix(appimage): Handle no TRAVIS_TAG or TRAVIS_COMMIT in AppImage build
With set u, bash aborts when either is not defined. Also neither is set when
building locally.
2021-10-24 14:17:00 -07:00
Mick Sayson
670457a77b
fix(extensions): Add toxext to CI scripts 2021-01-30 18:15:36 -08:00
Anthony Bilinski
9888bc2d80
fix(build): disable Werror by default, keep enabled on CI
To allow for easier building with different compilers on user systems. Keep
strict checks on CI to make sure new warnings aren't ignored.
2020-04-12 16:30:17 -07:00
sudden6
1fa35bfcb5
chore: remove Debian bug workaround 2020-01-13 11:19:02 -08:00
sudden6
6fff5a59a4
chore: update AppImage build tools 2020-01-13 11:19:01 -08:00
sudden6
547a038e48
refactor: remove AppImage update bridge
When re-evaluating our dependencies we decided that the update bridge
has a high potential for security issues because it's not widely used.
Additionally similar functionality is already present in qTox.
2020-01-13 11:19:01 -08:00
Maxim Biro
710c32ded0
feat: add Fcitx and Uim support to AppImage 2019-10-09 23:19:27 -07:00
antony-jr
e9665d517a
fix(build): fix cmake command in appimage/build.sh 2019-07-27 17:23:38 +05:30
antony-jr
837416b903
fix(build): install and use AppImageUpdaterBridge 2019-07-27 17:02:34 +05:30
antony-jr
bcab4514e4
chore(build): use search_dependency to add AppImageUpdaterBridge 2019-07-27 16:49:23 +05:30
antony-jr
e50b3bbd5c
fix(build): bundle missing libjack.so* to work with Fedora Workstation 2019-07-27 16:49:23 +05:30
antony-jr
21a6fa2b4f
chore(build): change copyright year 2019-07-27 16:49:23 +05:30
antony-jr
91141c2321
chore(build): change copyright as given previously 2019-07-27 16:49:22 +05:30
antony-jr
7153c1f2bf
fix(build): copy OpenSSL libs to AppDir 2019-07-27 16:49:21 +05:30
antony-jr
38e8e6927a
chore(build): turn off PR upload 2019-07-27 16:49:21 +05:30
antony-jr
5eea8ba27f
feat(build): add the delta updater 2019-07-27 16:49:20 +05:30
jenli669
04a9bc46f4
docs(copyright): update and add copyright info
zealously updates and adds qTox copyright information.

Fixes #5713
2019-06-28 01:18:26 +02:00
sudden6
9f8d0915f2
chore(build): fix snorenotify path in appimage 2019-03-24 11:58:10 +01:00
sudden6
5880ab8a42
chore(deploy): add snorenotify to AppImage deployment 2019-03-24 11:58:09 +01:00
sudden6
4e997b71de
chore(deploy): add sha256sum for linux deployments 2019-01-25 22:53:45 +01:00
Anthony Bilinski
6c9d7b59c1
feat(ui): add update notification enabled with -DUPDATE_CHECK
Fix #5335
2019-01-08 09:02:17 -08:00
sudden6
7aed694e45
chore(appimage): upstream renamed the branch 2018-12-25 19:33:04 +01:00
sudden6
0984829276
chore(deploy): add architecture to Flatpak and AppImage builds 2018-07-18 20:09:34 +02:00
sudden6
b7e6d4fadf
chore: fix small issues in deployment scripts and add debug mode 2018-07-18 15:20:31 +02:00
sudden6
64602f38f1
fix(deploy): fix file path in AppImage deployment 2018-07-04 00:54:31 +02:00
sudden6
22f7f958ed
chore(deploy): upload AppImage to Github releases on each tag 2018-05-19 09:10:37 +02:00
sudden6
64a7c24b2b
fix(appimage): build sqlcipher form source
Needed since Debian version is broken https://bugs.debian.org/850421
2018-05-05 01:53:36 +02:00
sudden6
f7345e4db2
feat(appimage): build appimage on TravisCI
first step on the way to #4874
2018-04-27 22:55:20 +02:00