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

104 Commits

Author SHA1 Message Date
Anthony Bilinski
ff2cad3b03
chore(build): Remove qTox-Mac-Deployer-ULTIMATE.sh
* It is only partially covered by CI and doesn't simplify the build process
much for users. Replacing it in CI with just build-osx.sh significantly reduces
script complexity and is fully tested.
* bootstrap-osx.sh copying system libs and headers locally is unneeded.
  Already the DMG file contains them, and re-linking the app against
updated system files may be desirable.
* Update INSTALL.md for macOS to use brewfile, use common dependency build
  scripts, and use cmake rather than wrapper scripts.
* Build macOS in Release mode in CI, for release artifact creation
* Don't copy all used libs into a local folder, macdeployerqt already
  handles this for the dmg, and for local running of the app using the
system libs and relinking on update is desirable to avoid running out of
date dependencies unexpectedly.
2022-01-09 18:52:53 -08:00
Anthony Bilinski
f5cf3cd183
chore(CI): Remove CIRP, replaced by direct GH action uploads
Previously was used to upload release artifacts from travis CI, which is
supported in GH actions through actions/upload-artifact.
2022-01-09 18:10:32 -08:00
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
9624fc33b0
chore(deps): update c-toxcore to v0.2.13 2021-12-08 01:02:55 -08:00
Mick Sayson
761c2fb292 fix(toxext): Update toxext to fix memory corruption issues
* tox_extension_messages updated as well for compatibility
2021-10-25 23:20:51 -07:00
Maxim Biro
57ae8a3e6a
chore(windows): use Debian Bullseye for Windows cross-compilation
bsdtar has moved to libarchive-tools package.

Something has changed in the newer gcc or mingw that makes Opus and
Sodium fail to build with:

  undefined reference to `__memcpy_chk'

The solution is to use -lssp or -fstack-protector, but while -lssp
worked for Opus, it was breaking Sodium's `make install` as it prevented
the .def file from being generated during the build time for some
reason:

  /usr/bin/install: cannot stat './libsodium-24.def': No such file or directory

while -fstack-protector worked just fine, so -fstack-protector was used
for both. This adds a new library dependency on libssp-0.dll.
2021-10-01 13:30:50 -04:00
Anthony Bilinski
e0ba376723
chore(CI): Use named directory for ffmpeg, cd* fails with multiple arguments 2021-06-27 01:03:29 -07:00
Anthony Bilinski
4699e84e14
chore(ci): Migrate PR CI from travis-ci.org and circleci to GitHub Actions
Partially fix #6345, only PR portion, not nightly or releases.

Unlike travis, we're not caching our brew packages. `actions/cache` doesn't
update the cache on cache hit, making it hard to use a rolling cache like
before. We also don't know what cache key we should use before running, since
it relies on the live package list of brew.

Using a docker image containing brew packages seems like a better option if we
need the speedup going forward. ATM a full build with deps only takes about 12
minutes. Windows builds don't have this issue, since deps there are keyed off of
known versions in our repo.

Current Windows matrix form works, but causes a double-build on dep change due
to both debug/release rebuilding the release deps. Instead, should probably
separate the dep jobs, block build on the dep jobs, and update the cache on dep
jobs, guaranteeing a cache hit on build jobs?

Windows stage 1 and stage 2 can probably be recombined, if they were split due
to travis single build length limits, since GH actions allows much longer single
builds.
2021-06-27 01:03:23 -07:00
Anthony Bilinski
f97135aac5
chore(travis): Combine code coverage build with full build
Saves time on the CI job, and the produced binary isn't used for releases
so it's uneeded to keep it unmodified.
2021-03-21 22:53:28 -07:00
Jamie Westell
f85f633346
chore(travis): add code coverage report generation
This change adds a cmake configuration switch to enable code coverage
instrumentation during the compilation of the project. When tests are
executed, the instrumentation outputs coverage data to output files in
the build directory. Programs such as lcov/gcovr can turn that data into
reports.

This change also adds steps to the travis CI configuration to build with
this configuration switch and then use lcov to generate the consolidated
report and publish to codecov.io
2021-03-21 20:36:28 -07:00
Mick Sayson
670457a77b
fix(extensions): Add toxext to CI scripts 2021-01-30 18:15:36 -08:00
Anthony Bilinski
abad3fc095
fix(travis): Don't call brew update in Travis CI
Brew disabled updating from shallow clones:
https://github.com/Homebrew/brew/pull/9383

The update is also uneeded since our .travis.yml already has `update: true` for
the brew extension.
2021-01-29 09:40:18 -08:00
sudden6
44008d11bb
chore: move OSX to use Brewfile 2020-11-06 23:23:06 +01:00
Anthony Bilinski
a68f5bcc6f
fix(travis): Install virtualenv for nightly build upload script 2020-08-19 03:11:54 -07:00
Anthony Bilinski
728621f627
chore(deps): update c-toxcore to v0.2.12 2020-05-01 15:37:47 -07:00
Anthony Bilinski
c748b5a8d0
Merge branch 'v1.17-dev' 2020-04-24 18:35:00 -07: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
Anthony Bilinski
bd339d2cb6
chore(build): stop using removed cmake options
Options were removed in https://github.com/qTox/qTox/pull/5888
2020-04-12 01:52:06 -07:00
sudden6
a4ac178bbd
chore(deps): update c-toxcore to v0.2.11 2020-03-29 02:09:20 -07:00
sudden6
4c79973df5
chore: update libsodium for CI builds 2020-03-29 02:08:54 -07:00
sudden6
7c59ffb24b
chore(deps): update c-toxcore to v0.2.11 2020-03-23 21:09:23 +01:00
sudden6
d77c41814f
chore: update libsodium for CI builds 2020-03-23 21:09:23 +01:00
Maxim Biro
88eba99eb3
chore(travis): update CIRP to v0.2.0 2020-03-03 00:38:28 -08:00
Maxim Biro
e1d1a9fed5
chore(travis): pick any Python 3.x, x>=5 for CIRP 2020-03-03 00:38:28 -08:00
Maxim Biro
12cd2cee85
chore(travis): update CIRP to v0.2.0 2020-02-24 16:39:14 -05:00
Maxim Biro
973996dd41
chore(travis): pick any Python 3.x, x>=5 for CIRP 2020-02-24 16:33:26 -05:00
Anthony Bilinski
524a6b8722
Merge branch 'v1.17-dev' 2019-10-18 11:18:39 -07:00
Anthony Bilinski
a44cce65be
fix(travis): update pyenv to python 3.7 after updating ubuntu to 16.04
3.6 can no longer be found, causing CI failures
2019-10-17 10:44:58 -07:00
sudden6
a29415024a
Merge branch 'v1.17-dev' 2019-10-15 21:05:45 +02:00
Anthony Bilinski
93c9eef51f
fix(ci): fix travis' window build in debian docker by upgrading libseccomp2
seccomp is used by the docker host, and the default version shipped with
Ubuntu 16.04 does not support syscalls used by Qt5's configure inside the
docker container. Upgrading libseccomp2 resolves this issue.

Fix #5874
2019-10-13 14:35:54 -07:00
Anthony Bilinski
16de5f8549
chore(ci): update travis to ubuntu 16.04, since 14.04 is EOL
Ubuntu has Qt 5.5.1 in its repos, so PPA is no longer required.
2019-10-10 14:11:21 -07:00
Maxim Biro
6bb2c7c629
feat(build): use Debian Buster for Windows cross-compilation 2019-10-09 23:19:26 -07:00
Maxim Biro
4fdedba6c0
feat(build): use Debian Buster for Windows cross-compilation 2019-09-17 21:41:17 -04:00
Anthony Bilinski
412f145581
chore(build): remove deprecated jenkins deploy script
Nightlies and windows releases are now done through CircleCi and travis
Branches "for-jenkins-release" and "for-jekins-testing" will be removed
when this is merged.
2019-08-16 15:29:50 -07:00
Maxim Biro
9b67d2619c
fix(travis): fix latest nightly release not updating sometimes 2019-07-23 07:21:12 -04:00
Maxim Biro
a70541846b
chore(travis): update CIRP to v0.2.0a3 2019-07-23 07:18:53 -04:00
sudden6
79c88f2154
Merge pull request #5722
jenli669 (2):
      docs(copyright): update and add copyright info
      docs(copyright): Added copyright to apparmor .qtox files
2019-06-28 09:00:13 +02:00
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
Anthony Bilinski
86f0c3a54c
chore(build): update toxcore to v0.2.10 2019-06-27 01:10:03 -07:00
Maxim Biro
516c52ad20
feat(travis): publish nightly builds off Travis-CI 2019-05-30 00:38:15 -04:00
sudden6
fc2baea969
chore: more caching on MacOS Travis 2019-03-18 06:56:11 +01:00
sudden6
e6fb66f052
chore: fix windows CI script 2019-02-25 19:46:27 +01:00
sudden6
5b83667aba
chore(build): add sha256sum for MacOS deployments 2019-01-25 22:53:45 +01:00
sudden6
af58f614d1
chore(deploy): publish hashes of windows setup files 2019-01-25 22:53:41 +01:00
Anthony Bilinski
23da95a983
chore(build): update toxcore to v0.2.9 2019-01-13 13:09:24 -08:00
Anthony Bilinski
c9cb5fefdd
fix(build): manually update brew to workaround autoupdate bug 2019-01-12 21:19:50 -08:00
Anthony Bilinski
6c9d7b59c1
feat(ui): add update notification enabled with -DUPDATE_CHECK
Fix #5335
2019-01-08 09:02:17 -08:00
sudden6
e0bcad21b4
chore: update TravisCI OSx minimum supported version
The reason to update is, that brew only supports 10.12 officialy and
with binary packages so our CI builds started failing because compiling took too long.
2018-10-23 12:20:49 +02:00
Anthony Bilinski
f7df1191bc
chore(build): update apt-get in build-docs before installing deps 2018-10-12 00:06:52 -07:00
Anthony Bilinski
a14595b4f1
chore(release): update toxcore version to v0.2.7 2018-09-17 10:40:07 -07:00