Commit Graph

9 Commits

Author SHA1 Message Date
Dimitrios Apostolou
a0aaa4ae2e Github Actions: many minor updates
+ 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>
2021-01-22 18:48:54 +01:00
Dimitrios Apostolou
e4194b6f9e Github Actions: install old ccache version on Windows
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>
2021-01-22 18:48:49 +01:00
Dimitrios Apostolou
7ff1123711 Github Actions: ccache updates
+ 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>
2021-01-22 18:48:45 +01:00
Cristian Adam
e6b8eb502e GitHub Actions: Fix workflow file
-no-iconv configure parameter was removed and various changes to the
configure parameters.

Change-Id: I8716388b20846cdd1ba63a715308813a312dea65
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-09-11 13:37:48 +02:00
Cristian Adam
ad80d57635 GitHub Actions: Fix actions build
configure script has started to fail on presence of unknown parameters.

Change-Id: I7a18730e0579a36aadd8e92881886e2cc397594a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-14 21:40:28 +02:00
Dimitrios Apostolou
60666ed2fa Update configure flags to the last fixes
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>
2020-06-30 15:21:32 +02:00
Dimitrios Apostolou
31ae43f875 Install and enable pkg-config on macOS
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>
2020-06-30 15:21:14 +02:00
Dimitrios Apostolou
04e1ae2308 Do not mix CCache artifacts between similar versions of same OS
+ 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>
2020-06-30 15:21:05 +02:00
Dimitrios Apostolou
b9b03165a5 Introduce Github Actions workflow for Cmake Ninja build
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>
2020-06-20 23:53:11 +02:00