+ Add Ubuntu-20.04 Github Actions runner
+ Use as many system libraries as possible on all
platforms except Windows
+ Checkout the git repository into a directory named "source",
so that it's possible to checkout more repositories in the future
+ Configure with install prefix set to a temporary path,
it will be used for uploading binary artifacts in the future
+ Configure with -pkg-config instead of -feature-pkg-config;
this was the traditional way and it works for cmake now
+ Split long lines using double quotes instead of backslashes,
makes the yaml file more readable and does not leak
backslashes into the command line
+ Adjust cache to work in multiple branches, provided that the
environment variables at the top of the file are set correctly
+ Do not let homebrew waste time cleaning up
+ Print logfiles in case of failure
+ Typos and other minor fixes.
Pick-to: 6.0
Change-Id: I1ac8afebbdbea50549a334c07b8b3117a823f0fe
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
ccache 4.0 is crashing consistently. Fix is merged upstream, but it's
not released yet:
https: //github.com/ccache/ccache/pull/736
Pick-to: 6.0
Change-Id: I27d154a1ff1ea3afe111bd8f931db58c6f518809
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+ Specify the ccache cache directory to avoid the defaults, because
ccache >= 4.0 puts the cache directory in system-dependent paths
+ Adjust sloppiness to increase cache hit ratio
+ print compression stats but don't err if `-x` flag is missing
(only available only on ccache >= 4.0)
+ Print ccache config for debugging purposes
+ Enable ccache compression and limit size
Regarding the last point, ccache < v4.0 optionally compresses using the
zlib algorithm, but ccache >= v4.0 uses zstd and compression is enabled
by default. By forcing compression to true, all platforms will need
similar size cache. We have to limit it because the default (5GB) fills
up the cache artifacts size that Github Actions offers.
Pick-to: 6.0
Change-Id: Iea72d08b223c611ee4a4443625647a1f01809b08
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-no-iconv configure parameter was removed and various changes to the
configure parameters.
Change-Id: I8716388b20846cdd1ba63a715308813a312dea65
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
configure script has started to fail on presence of unknown parameters.
Change-Id: I7a18730e0579a36aadd8e92881886e2cc397594a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The following options now work:
-ccache
-nomake examples
-nomake tests
-no-pch
Furthermore -no-optimize-debug is not used in the CMake build,
all -debug builds are without optimizations.
Change-Id: I53abd62083f3bb61f15efe79729cf541515c0a4c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Needed after commit f3c7d22dd0
that caused CMake to not search libraries under /usr/local.
Change-Id: Ic10925e1c6ee941e7a58a3a219be3d659d3b2fb5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
+ runner.os is for example "macOS"
+ matrix.os would be "macos-10.15"
This way we don't mix the CCache artifacts between different versions of the
same OS.
Change-Id: I90da8c1013d661ddddbc22d205af4858db057b14
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Has minimal configuration in order to achieve fastest build times.
CCache is on, and PCH is off as it significantly reduces the Ccache hit ratio.
This Github Workflow has been measured to take around
+ 30min without any Ccache hits and 8min for a rebuild, on Linux
+ 20min without any Ccache hits and 4min for a rebuild, on macOS
+ 1h without any Ccache hits and 20min for a rebuild, on Windows
The goal is to use such Cloud building and testing systems as "smoke runs",
providing quick feedback, much sooner than the canonical approval from
Coin. Additionally having many independent systems helps verify "flakiness"
issues. Another big advantage of such systems is their hackability, allowing
someone to tweak the build parameters by just editing a couple of YAML lines.
Change-Id: I7eca22f513516b9e61f333fb1fe89ab11ed2d1d1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>