qt5base-lts/coin/instructions
Dimitrios Apostolou 98f1034f96 Properly wait for the Android emulator to fully boot
It had been noticed that sometimes the Android emulator in our CI took
several minutes to fully boot. It turns out that this behavior can be
reproduced locally by removing the image files under $HOME/.android
especially the "userdata-qemu.img.qcow2" file.

Then the emulator goes through several reboots until fully booted with a
full set of packages installed. We discovered that the property that
signifies it is finished is dev.bootcomplete=1. So we now check for this
flag and remove the other heuristics we had.

We also disable the debug output to avoid hundreds lines of
logs. Instead we selectively print the values that the emulator returns,
every second until full boot is detected.

We increase the Coin timeout for the shell script, from 5min to 10min,
since it has been measured that it takes about 2.5min on a good day, and
the script itself retries several times to restart the emulator in case
of failure.

Finally we adjust the coding style a bit to be more consistent.

Pick-to: 6.3 6.2
Fixes: QTQAINFRA-4681
Change-Id: I77062dceb91477e957696c89bfacb4ebabc34c1f
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-01-07 19:34:50 +01:00
..
qmake CMake: Build examples with qmake against a CMake built Qt 2020-12-04 15:39:32 +01:00
qmake_examples CMake: Build examples with qmake against a CMake built Qt 2020-12-04 15:39:32 +01:00
call_cmake_for_standalone_tests.yaml Move bin/qt-internal-configure-tests to libexec 2021-03-30 14:39:12 +01:00
call_cmake.yaml CMake: Use the same generator when building other repositories 2020-05-19 10:16:16 +02:00
call_host_cmake.yaml CMake: Use the same generator when building other repositories 2020-05-19 10:16:16 +02:00
call_host_install.yaml CMake: Use custom install script to support Ninja Multi-Config builds 2020-05-19 10:16:11 +02:00
call_target_cmake.yaml CMake: Use the same generator when building other repositories 2020-05-19 10:16:16 +02:00
call_target_install.yaml CMake: Use custom install script to support Ninja Multi-Config builds 2020-05-19 10:16:11 +02:00
cmake_build_and_upload_test_artifacts_host.yaml Read test specific configure arguments from environment 2020-09-28 05:28:22 +00:00
cmake_build_and_upload_test_artifacts_target.yaml Read test specific configure arguments from environment 2020-09-28 05:28:22 +00:00
cmake_build_and_upload_test_artifacts.yaml Exclude INTEGRITY artifacts from Archivation step on CI 2021-12-02 20:09:40 +02:00
cmake_cross_compilation_module_build_instructions.yaml Apply custom timeouts to cross compilations 2021-08-10 12:21:58 +00:00
cmake_cross_compilation_qtbase_build_instructions.yaml Turn on autotest build for INTEGRITY on CI 2021-12-01 22:48:49 +02:00
cmake_documentation_build.yaml Build docs in-tree 2021-11-12 16:44:22 +00:00
cmake_module_build_instructions.yaml Allow overriding CMake build timeout values 2021-05-18 07:02:52 +03:00
cmake_qtbase_build_instructions.yaml CMake: Build examples with qmake against a CMake built Qt 2020-12-04 15:39:32 +01:00
cmake_regular_test_instructions_common.yaml Coin: remove workarounds to allow running Android tests 2021-02-18 13:42:19 +02:00
cmake_regular_test_instructions_enforced.yaml CMake: Build minimal subset of tests in desktop static builds 2021-04-06 09:15:37 +01:00
cmake_regular_test_instructions.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
cmake_run_ctest_enforce_exit_code.yaml Introduce qt-testrunner.py 2022-01-03 16:32:56 +01:00
cmake_run_ctest_ignore_exit_code.yaml Increase the timeout for test targets 2021-06-02 21:02:41 +03:00
cmake_setup_running_qnxqemu_tests_env_vars.yaml CI: Add QNX qemu support 2021-10-27 13:30:01 +03:00
cmake_setup_running_tests_env_vars.yaml Introduce qt-testrunner.py 2022-01-03 16:32:56 +01:00
coin_module_build_template_v2.yaml CI: Enable rest of the Qt modules for QNX 2021-12-14 10:41:56 +02:00
coin_module_test_android_start_emulator.yaml Properly wait for the Android emulator to fully boot 2022-01-07 19:34:50 +01:00
coin_module_test_docs.yaml coin: Add instructions to generate docs during testing 2021-10-18 16:23:13 +00:00
coin_module_test_qemu_env_vars.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
coin_module_test_qnx_start_emulator.yaml QNX: Use hostname set in qemu image build files 2021-12-15 10:48:22 +00:00
coin_module_test_template_common.yaml CI: Add QNX qemu support 2021-10-27 13:30:01 +03:00
coin_module_test_template_v2.yaml CI: Enable building autotests for QNX QEMU 2021-10-27 10:30:02 +00:00
coin_module_test_template_v3.yaml CI: Enable building autotests for QNX QEMU 2021-10-27 10:30:02 +00:00
coin_qtbase_build_template_v2.yaml Turn on autotest build for INTEGRITY on CI 2021-12-01 22:48:49 +02:00
coin_qtbase_test_docs.yaml coin: Add instructions to generate docs during testing 2021-10-18 16:23:13 +00:00
prepare_building_env.yaml coin: Fix sccache to be used when cross-compiling tests 2021-12-16 19:44:13 +01:00
README.md CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00

Information about Coin instruction templates

Build templates

  • coin_qtbase_build_template_v2.yaml did not exist. The build instructions were directly embedded into module_config.yaml and did not support repos outside of qtbase, also no cross-compilation.
  • coin_qtbase_build_template_v2 introduced support for building other repos, and also enabled build cross-compiling targets like Android and iOS. A bit later the template gained the ability to build qemu cross-compiling configurations. The counterpart to qtbase to build other repositories is coin_module_build_template_v2

Test templates

  • coin_module_test_template_v1 did not exist. The test instructions were directly embedded into module_config.yaml and did not support repos outside of qtbase, also no cross-compilation.
  • coin_module_test_template_v2 introduced support for building tests for other repos, and made sure not to build and run tests on cross-compiling configuration. A bit later the template gained the ability to build and run tests for qemu cross-compiling configurations.
  • coin_module_test_template_v3 changed the run test instructions to not ignore the exit code and thus enforce that tests pass in the CI.