summaryrefslogtreecommitdiff
path: root/docker
Commit message (Collapse)AuthorAgeFilesLines
* docker: Update focal imagesIvan Komissarov2023-05-061-0/+8
| | | | | Change-Id: Ide8cb42abc270bb691b2f4caff6412531cbaf50a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* docker: update Windows imageIvan Komissarov2023-02-211-9/+9
| | | | | | | | | | | | - install latest vs2019 compiler - install latest win10 SDK - add vswhere to simplify searching VS - update Qt to 6.2.4 - update Qbs to 1.24.0 - drop support for 32-bit packages in choco Change-Id: I0a57baf160307b84e62fea5c56687efcce7fe42c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch JavaScript back-endChristian Kandeler2023-02-073-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer clang versions seem to expose serious bugs in QtScript, whose complexity makes it difficult to track them down. We therefore switch to the more light-weight QuickJS, which offers all the features we need (most notably property access interception), as well as good performance. To save some porting effort, we removed the long-deprecated loadFile() and loadExtension() functions. During the porting procedure, we noticed and fixed thread safety issues in artifact access from JS commands. We consider this change important enough to bump the major version, so the next release will be 2.0. Detailed benchmarking data is below. In summary, we see a modest speed- up at the cost of a similarly modest increase in memory consumption (with the exception of project resolving on macOS, which has become a bit slower). Importantly, the increase does not rise with project size, as the comparison of qbs vs Qt Creator shows. Output of qbs_benchmarker on Linux with qbs as test project: ========== Performance data for Resolving ========== Old instruction count: 12870602895 New instruction count: 11923459780 Relative change: -8 % Old peak memory usage: 61775848 Bytes New peak memory usage: 67583424 Bytes Relative change: +9 % ========== Performance data for Rule Execution ========== Old instruction count: 4074062223 New instruction count: 3887473574 Relative change: -5 % Old peak memory usage: 35123704 Bytes New peak memory usage: 38398392 Bytes Relative change: +9 % ========== Performance data for Null Build ========== Old instruction count: 1104417596 New instruction count: 1011033948 Relative change: -9 % Old peak memory usage: 24461824 Bytes New peak memory usage: 25325920 Bytes Relative change: +3 % Output of qbs_benchmarker on Linux with Qt Creator as test project: ========== Performance data for Resolving ========== Old instruction count: 67166450352 New instruction count: 60772791018 Relative change: -10 % Old peak memory usage: 327011616 Bytes New peak memory usage: 343724176 Bytes Relative change: +5 % ========== Performance data for Rule Execution ========== Old instruction count: 71684351183 New instruction count: 67051936965 Relative change: -7 % Old peak memory usage: 374913688 Bytes New peak memory usage: 387790992 Bytes Relative change: +3 % ========== Performance data for Null Build ========== Old instruction count: 8383156078 New instruction count: 7930705668 Relative change: -6 % Old peak memory usage: 180468360 Bytes New peak memory usage: 182490384 Bytes Relative change: +1 % Real-world data building Qt Creator (using qbs --log-time, several runs, removing outliers): macOS: Resolving: 43s -> 47s Rule execution: 17s -> 14s Windows: Resolving: 18s -> 16s Rule execution: 22s -> 17s Fixes: QBS-913 Fixes: QBS-1103 Fixes: QBS-1126 Fixes: QBS-1227 Fixes: QBS-1684 Change-Id: Ie5088155026e85bbd1e303f1c67addb15810a3cb Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Update clang and clang-tidyIvan Komissarov2022-08-251-6/+6
| | | | | | | clang-8 fails to compile Qt 6 code, so update it. Change-Id: Ib0d25c961738ec7549856366b27ef62f87cb910d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update focal-qt6 image to Qt 6.2.4Ivan Komissarov2022-08-101-1/+1
| | | | | Change-Id: I098072d593d927d52b56e06d48e3fbe018c072a4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* docker: install qdoc into Qt4 imageIvan Komissarov2022-08-051-2/+2
| | | | | Change-Id: Ic0a05c8d97e77f441e6efdd1216715d2479cdb10 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add Qt 6.3 Android image and update ANDROID_PLATFORMRaphael Cotty2022-02-061-1/+1
| | | | | | | | | | | | | Add docker image focal-android-630 and corresponding github action. Update ANDROID_PLATFORM to "android-30" because Qt AndroidManifest uses property allowNativeHeapPointerTagging (QTBUG-97009) since 6.2.1 which was added in API30. Also update android test because bug QTBUG-97834 was solved in Qt 6.3. Change-Id: Id45701433a779d2c6cb8dfdbfb0676e2daad6f88 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add qt6 static docker imageRaphael Cotty2021-11-211-0/+218
| | | | | | | | Add qt6.2 docker image and github action Fixes: QBS-1534 Change-Id: Ia1675697fbd6bcbaabfafc11940bf5cb9447206b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: Add android image for Qt 6.2Raphael Cotty2021-10-251-1/+5
| | | | | Change-Id: Ib48209643b755954f0f38c3f1bcfb487e23cf292 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add android testing with different ndk versionsRaphael Cotty2021-09-302-3/+109
| | | | | | | | | | | | | New docker images are added to test different android ndks. Those images don't have Qt so only a subset of the tests are run. So far I added 3 images: r23 (LTS), r21e (LTS) and r19c (minimum one). The other android images also have a new ANDROID_NDK_VERSION argument set to the r23. Change-Id: Iaa7c80b9cac1c7888b3297fac13333d22a9ad0bc Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* docker: update Qbs version to 1.19.2Ivan Komissarov2021-09-281-1/+0
| | | | | | | Also, remove unneeded command Change-Id: I952bd7bc2bf1e5fac9de140ad160b6cd25539b40 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* docker: Add SuseLeap imageIvan Komissarov2021-09-272-0/+192
| | | | | | | | It is nice to have a configured RPM-based distro for local testing. Change-Id: Id6eeae1d0d5bccc27f240f996d6f9ea1b56aa1b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Correct qt6 testRaphael Cotty2021-04-061-2/+8
| | | | | Change-Id: I1f05ae51f30f0158cb3dec6ce189d96f52987c7a Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add Qt6 docker image and update Qt5 imageIvan Komissarov2021-03-191-1/+2
| | | | | | | ...to add additional packages required for the Qt6 image Change-Id: I42791440eaa754a1ae4ea3c24f86dd0ccedc1ed6 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Merge branch '1.18'Ivan Komissarov2021-02-191-0/+40
|\ | | | | | | Change-Id: I4e437865514add88558f66420718bc02fb39e41d
| * Add qt4 docker image for basic testingRaphaël Cotty2020-12-181-0/+40
| | | | | | | | | | Change-Id: Ied6d9eac49fcb20de72499ab7c39e83a90a98b75 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Add RISC-V 64-bit architecture for GCC compiler to CIDenis Shienkov2021-02-121-1/+2
| | | | | | | | | | Change-Id: Iff317ec5e4a06e9fc9ae4e0a20c6e55656af2855 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Add XTENSA architecture for GCC compiler to CIDenis Shienkov2021-02-081-1/+3
|/ | | | | Change-Id: I810f6b6c263a1b5ade0ece35e57f6ad30b2864ed Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: Update sdk/ndk/tools versionsRaphaël Cotty2020-11-181-12/+12
| | | | | | | | | build-tools: 29.0.3 NDK: 21.3.6528147 SDK Platform: 29 Change-Id: I6d281aa2e914d7567fa2d57698146465b41838d7 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: Update for Qt 6Raphaël Cotty2020-11-171-2/+8
| | | | | | | | | | Manage the new directory layout of Qt6. Update generation of the input file for androiddeployqt. Fixes: QBS-1613 Fixes: QBS-1609 Change-Id: Ie633fad467f310bfc4cd42e9c32d9cfc2e734582 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Upgrade linux images to Ubuntu 20.04Ivan Komissarov2020-09-144-104/+10
| | | | | Change-Id: I4dcfbe846f7847874908ed8ad84ac615a5a739c1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* docker: Install additional dependencies in the imagesIvan Komissarov2020-08-312-0/+3
| | | | | | | | To be able to run Qbs with sanitizer Change-Id: Ia098a419a001ebbea039281ff20ccbc11198226a Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Initial CMake portIvan Komissarov2020-08-171-0/+2
| | | | | | | | | | | | | | | | | | | This change allows to build Qbs using CMake build tool Tested platforms - Linux (gcc) - macOS (clang) - Windows (msvc2017) Missing features (compared to Qbs build) - Documentation build - Bundled QtScript support - Static build - .pc file for qbscore - qbs module for qbscore Change-Id: I09b5dadd6723d5a47e5ef2a9a38d3300488718f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add basic docker-compose auto-tests configurationDenis Shienkov2020-08-042-0/+141
| | | | | | | | | | | | | | | | This commit adds a basic 'docker-compose' <focal-baremetal> configuration which allows to produce the bare-metal tests. Current docker image contains the following toolchains: * gcc-arm-none-eabi * gcc-avr * gcc-msp430 * sdcc Change-Id: I7e020081dcb763d704c309ffd96fa03b3c56e4fb Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* travis: install cap'n'proto packages in Bionic imageIvan Komissarov2020-07-281-0/+2
| | | | | | | This allows to run capnproto tests on Linux Change-Id: I1c500063f13f4aecc16c088f91d3ce790c750abf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch to Qt 5.15.0 and drop CI support for MinGW on LinuxRichard Weickelt2020-07-202-118/+17
| | | | | | | | | | | Cross-builds with MinGW on Linux are dropped mainly because of build issues and because MinGW support bloats the resulting Docker image. We have CI jobs running on Windows with MSVC and Clang-cl which should be sufficient. Change-Id: Iac4e0eaf1270844836697bebf52f9c056457caaf Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Add support to generation of aab packageRaphaël Cotty2020-06-251-0/+4
| | | | | | | | | This patch adds the Android.sdk packageType property which sets the target application. By default (previous behavior) qbs generates an apk package. When set to aab, qbs generates instead an aab package Change-Id: Ic09776d08e2a2ecd68fb4c08881201a7a0a25240 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* docker: fix PATH in android imagesIvan Komissarov2020-06-091-1/+1
| | | | | | Change-Id: I5856b6d6edcf37a9af9dada72271caff60f311f2 Reviewed-by: Raphaël Cotty <raphael.cotty@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch '1.16' into masterRichard Weickelt2020-04-153-174/+6
|\ | | | | | | Change-Id: Ie3f341fe18e2ffaf676721748279c6b027590727
| * Use docker-compose exclusively for managing Docker imagesRichard Weickelt2020-03-261-32/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qbs used to have docker products and a module for building the images, but this became obsolet and was superseded by the docker-compose infrastructure. Docker-compose is a much better fit for our use-case (which is mostly CI). It allows us to use unique (and complicated) tags both when building and running the images without exposing that to the user. Unique tags like bionic-5.12.6_1.14.1-2 instead of just bionic ensure that changes in the infrastructure don't suddenly break builds in older branches using the same image. This patch also updates the documentation to emphasize the usage of docker-compose. Change-Id: I45335d37034d10dda5ab5079ee3be1f81cb3e5c5 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Remove Debian stretch from Docker build environmentsRichard Weickelt2020-03-242-142/+0
| | | | | | | | | | | | | | | | | | We have not been able to build Qbs with it for a while and it was superseded by Ubuntu Bionic. Change-Id: I8fe0d40baf8f522d4fd0b94a0b403b324c300e74 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Install libgrpc++-dev packages in Bionic imageIvan Komissarov2020-04-021-0/+1
|/ | | | | | | | | This enables autotesting the GRPC test in Travis (otherwise, headers are missing and IncludeProbe fails to find them) Change-Id: I77792a2c5dbfc3f73020b7964cca3274a5165c3c Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update windowsservercore Docker imageRichard Weickelt2020-03-173-62/+40
| | | | | | | | | | | | | Qt is updated to 5.12.5, MSVC is updated to 2017. Qbs is updated to 1.15.0. Docker-compose is used for managing the image. A unique tag name is used instead of the generic windowsservercore tag to be always able to refer to a specific version. Docker-compose is now used for managing the image. Change-Id: Ia5733992e7692561b1a6e74a4ac2ea3a7a01c4d8 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add OpenGL to bionic-android Docker imageRichard Weickelt2020-02-261-1/+1
| | | | | | | | This is needed to run Qbs binaries created with qbsbuildconfig.enableProjectFileUpdates:true. Change-Id: I9a5f5065df46e90d54bd47d8559fc36cf58fa590 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use python3 in Travis for building docs and running clang-tidyIvan Komissarov2020-02-211-2/+5
| | | | | | Change-Id: I2f0d72abdf12a4e64b79bf9a3c02b32cf4cbeed6 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Install more packages in bionic image to run more testsIvan Komissarov2020-02-101-5/+17
| | | | | | Change-Id: I21691196660a6f5650f6328abe43ec2269a09dbc Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add Docker environment to test Qbs with Qt for AndroidRaphaël Cotty2020-01-101-0/+107
| | | | | | | | | | | | | | | | | | | | | | The Docker images contains ndk r20 and qt 5.13.2 as well as 5.14.0. Containers can be started with the following command line: - docker-compose pull bionic-android-513 - docker-compose run --rm bionic-android-513 The current folder is mounted under /qbs. Assuming that Qbs has been built in the current directory and with release configuration, the autotests can be invoked with: docker-compose run --rm bionic-android-513 scripts/test-qt-for-android.sh \ release/install-root/usr/local/bin A job Travis CI job is added which builds Qt and runs the Android blackbox tests. Change-Id: I76b1901cb7c41f8b5b0122265c99c9b37b59f261 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update Dockerfile for Ubuntu/bionic to install clang-8Ivan Komissarov2019-12-021-2/+9
| | | | | | | | Requied to be able to run clang-tidy Change-Id: Ie0b6eb3229e8a93ea2e7dd10d75824fb40702fa6 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Enable ccache on Linux/DockerRichard Weickelt2019-11-251-0/+1
| | | | | | | | This speeds up CI builds a lot. Change-Id: I53962e1683b4dd923c3a7d254db24164a4e623a6 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Export the GLIB switch properlyRichard Weickelt2019-10-211-1/+1
| | | | | | | | | The GLIB event dispatcher was disabled in order to work around QTBUG-79020. But the environment variable was not exported properly and hence, the work-around had no effect. Change-Id: I9bad99168456ae734c895db0ed4f46885d6b4d48 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update windowsservercore/DockerfileJoerg Bornemann2019-10-114-74/+59
| | | | | | | | | | | | | | | | | | | - Update qbs to 1.12.1 - Update Qt to 5.12.5 We're not using the installer anymore, because a) the unattended-install-hack doesn't work for newer Qt installers b) newer installers do not provide VS 2015 builds. c) it allows us to tailor the Qt build to our needs in the future. We're not building the documentation on Windows anymore due to the genius move to require libclang for qdoc. That means we need additional twiddling with the packages to add documentation that was built on an usable OS. Task-number: QBS-1438 Change-Id: I77a487562c2f5edd69b8b8a10ef3410ab599dc92 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Disable glib event dispatcher in bionic Docker imageRichard Weickelt2019-10-071-0/+3
| | | | | | | | | | | | Disable glib in the bionic Docker image, as the glib event dispatcher leads to deadlocks in TestBlackbox::concurrentExecutor quite often. The problem should hardly occur in practice. This is a work-around until QTBUG-79020 is fixed. Fixes: QBS-1499 Change-Id: I8cecc979b1c13b053c0ee0787cc4bc0a0de8b701 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Allow overlapping uid/gid in containerRichard Weickelt2019-09-021-2/+2
| | | | | | | | | | | | | | | Makes it possible to start the container on a Linux host where the uid/gid of the current user is similar to an existing uid/gid in the container that is not the "devel" user. For instance, if the host gid is 100, then groupmod in the entrypoint script refuses to change the "devel" user to gid 100 because that gid is already taken by the "apt" group in the container. Change-Id: Ifc4980b118b9b94bf744aa1108225d3c727eb644 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add Ubuntu 18.04 Docker imageRichard Weickelt2019-08-272-0/+276
| | | | | | | | | | | | | | | | | | | Contains: - Qbs 1.13.1 (from QtCreator 4.9.2) - Qt 5.12.4 for Linux (prebuilt) - Qt 5.12.4 for Windows (compiled from source) - gcc 7.4 - mingw-w64 (7.3) This image can build Qbs and all its components for Linux and Windows targets. It might supersede Debian stretch which is not officially supported by Qt 5.12. The only limitation is that it can neither build Chocolatey packages nor run windeployqt. Change-Id: Icee1f002483f68839d39c8c152a9c5d886dabcfb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch to Qt installer script in Docker containerRichard Weickelt2019-08-231-138/+27
| | | | | | | | | | | Use the official packages instead of compiling Qt ourselves. This simplifies the Docker image a lot. For accessing the script folder, the Docker context needs to change to the root directory. Thus, we need a .dockerignore file to keep the size of the context low. Change-Id: I58ec8f364feba955518f1eaf5bff234332ae8dec Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Make the address sanitizer work in DockerRichard Weickelt2019-06-071-1/+6
| | | | | | | | | | | | - Libasan requires ptrace capabilities when running in Docker - Provide a suppressions file - Update stretch Docker image to build against libicu and match the configure options of the official Qt release. Otherwise the address sanitizer fails when Qbs loads plugins. Change-Id: Ib620187a3cdd486eaf646ee0bd022b811744a998 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update and optimize the Docker infrastructureRichard Weickelt2019-05-072-10/+21
| | | | | | | | | | | | | | | | | | - Extend Qt installation to enable Qbs autotests and building docs (QtDeclarative and QtTools, libclang were missing). - Add Qt to PATH in the container - Allow users of docker-compose to override the Docker username so that they can potentially use their own repositories without changing the file. - Fix error in the entrypoint script which didn't work when running the container without arguments. - Replace the non-interesting output of building Qt with dots because the log exceeded the maximum log length on Travis CI, but being entirely silent triggered the watchdog. Task-number: QBS-1438 Change-Id: Ibd3abacadfc001db5169a9a3fffce908f8e6e760 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update Debian Stretch Docker imageRichard Weickelt2019-04-294-82/+237
| | | | | | | | | | | | | | | | | The Debian Docker image is outdated and the user experience is not optimal, especially when using it on Linux hosts. - Update Qt to 5.11.3 and build it from source since the Qt installer is overly complicated to use - Create a Qt profile and make it the default - Add entrypoint script to avoid file permission problems on Linux hosts - Add docker-compose.yml file for easier command line usage - Improve documentation Task-number: QBS-1402 Task-number: QBS-1438 Change-Id: I2cbe53ed115fc8cbb96c1e1305297c581e7d0589 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Account for the Qbs docs build now requiring additional dependenciesJake Petroules2018-01-052-1/+8
| | | | | | | | | | | | | | Document it, and install the dependencies in the Docker images. For the man page build, the installed version of the qbs app is now used to get the help text rather than the non-installed version, since the non-installed version may not be able to find all library dependencies (like Qt) on some platforms by default. The build also now depends on the other executables as well since their presence affects the output of qbs --help. Change-Id: Ic9896231aa76a346180bf30f7b2483391f5e4ea0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update Docker images with the latest softwareJake Petroules2017-12-054-14/+22
| | | | | Change-Id: I360fbab406a0bd82dd0a09462585681625c1539c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>