This only came up when we had gnutls native but not cross to find out
that we used the system pkg-config all the time to detect cross.
Making sure we use the correct tool to detect the cross dependencies.
Withj an updated ewpi in the docker image we can now enable more build
options. Examples are still disabled as there is a build break that
needs to get fixed first.
Summary:
We finally have regular Coverity Scan runs back to our CI.
It gets triggered from the cron jobs on Travis. As we are not able to
identify if it comes from a daily or weekly cron build I added a check
to only run the scan build on a Saturday so we should have a nice and
fresh report on Monday morning in our mailboxes.
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9175
Summary:
One of the time consuming parts of the macos build we have is the
installing of the efl dependencies as packages from brew.
The brew update command alone is often taking 5m to run.
To avoid running brew update at all we are switching to a newer osx
image from Travis, which comes with a newer set of brew metadata and
gets us around a brew update for now. Together with this we are also
switching from our own dependency install script to the brew package
addon provided by travis already.
In my testing this shows we are only spending 270s in the brew package
updates comapred to 635s before. So we have a 6 minutes speedup for
every osx build!
Depends on D9161
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9162
Summary:
While we set CC="ccache gcc" as an env var in Travis it gets overridden
at some point before meson is run. This results in a situation where we
have ccache enabled for g++, but not for gcc. Enforcing the setting
directly before meson again to make sure it gets picked up correctly.
I have seen build time improvements on Travis with up to 7 minutes
with this in an optimal case (rebuild existing job). It should shave off
at least a few minutes from every build even with bigger changes.
Depends on D9160
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9161
This is one of these two line changing commits one just have to love.
Using ccache also for the mingw builds got a amazing speedof for the
cross build as well.
In my, simple, testing I could reduce the build time on Travis from 18m
to 6m when rebuilding the same rev, thus a 100% cache hit rate. In real
life this would be less of an improvement but reducing the build time in
half is kind of realistic I think. Thanks to Marcel to bringing the idea
up.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9139
Summary:
With the meson build the examples do not have a dedicated target, no
need for this script anymore.
Depends on D9120
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9121
Summary:
For an easier to grasp travis output we are using the travis_fold and
endfold markers in our scripts. Renaming a few here to match the usage
of meson and ninja instead of make. Also adding a few more that have
been missing.
While we are add it remove a now silly extra mingw conditional.
Depends on D9119
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9120
Summary:
We have been lacking to test many of the build options we have with
meson. Catching up on them here for the enabled and disabled build jobs.
Not everythign could be covered yet, but I leave notes about what stil
needs handling.
Depends on D9118
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9119
Summary:
This was used to pass to make and is no longer used with ninja.
Depends on D9117
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9118
Summary:
With the autotools build system gone we now longer need these files in
our CI system.
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9116
these are no longer used by anything
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D9108
Summary:
catchup with the windows cross build autotools build we have and provide
the matching meson build.
Depends on D9042
Reviewers: bu5hm4n, zmike, vtorri
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9043
Summary:
So far we only did generate a newer eolian_gen binary here due to the
frequent changes, but we really need way more native tools when doing the
cross build. Edje_cc, eet and elm_prefs_cc to name them.
Maintaining a special target for these (when they need almost all of
efl/elm anyway) looks like a burden so we are going with a full efl
build. Still speeding it up quite a bit by disabling bindings, examples
and tests when dong the native tooling build.
Reviewers: bu5hm4n, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9041
unit tests automatically abort with info after 60s, and tests should be run with
an appropriate timeout to avoid conflict with the test runner's default 30s timeout
set explicit timeout in eio test for now because there's still frequent bugs here
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8894
this should resolve some issues where ci was not correctly detecting
changes in env and clearing the config cache during autotools build
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8416
Summary:
so there I was, out at the pub after a hard release cycle, drinking
GNU's finest, and a " comes over and challenges me to a duel--
editors at 50pt. the " cheats and gets me right in the repo before
the countdown ends and then I'm out cold.
I wake up the next day with CI (still) failing, hundreds of pings on IRC
asking where I've been, and my refrigerator is somehow filled with ethernet
cables (cat7) which I have no memory of purchasing. my computer has doodles
in permanent marker all over the screen, and my cat is somehow stuck in a
ceiling vent which I also have no memory of seeing. also this isn't my house.
I leave the building, which turns out to be a fast food franchise a few blocks
away from my gym, and the cops roll up (https://i.imgur.com/JnOI4Jz.gifv)
asking to see some identification. I show them my credentials (ssh RSA4096),
and they cuff me. I'm under arrest for failing to close a double quote and
submitting a patch which impersonated a fix to a failing CI job.
the moral of this story is to always reread your patches and make sure you've
matched up all your punctuation.
ref D8340
Reviewers: devilhorns, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_build
Differential Revision: https://phab.enlightenment.org/D8356
this is also really, really stupid.
ref D8305
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D8340
this enables travis to build eolian_gen before cross compiling in mingw.
This is done in order to make eolian_gen patches easier on CI.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7930
Summary:
The new image also contains the ewpi install in a different location.
Updating the references here.
Reviewers: bu5hm4n, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7833
Summary:
With some recent changes we only had builds running after a push which
did not qualify for a make check / ninja test run. Mostly due to problems
with the tests and specific config options. Bring back a default build
which will also run the unit tests un every push.
Also adding back a dedicated wayland build due to conflicts of gl
versions with the all options enabled build.
Fixes T7545
Reviewers: bu5hm4n, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7545
Differential Revision: https://phab.enlightenment.org/D7727
Summary:
These two checks still used the, now updated to newer, Debian and Ubuntu
versions. It only showed in the daily cron job build.
Reviewers: bu5hm4n, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7719
bindings are added as subdir by foreaching a array defined in meson.build at root.
then meson checks a option which has the same name of the binding.
this patch appends a new option for selecting bindings to build.
[howto]
*as-is
meson build.asis/ -Dmono=false -Dcxx=true
ninja -C build.asis/
*to-be
menson build.tobe/ -Dbindings=luajit,cxx
ninja -C build.tobe/
it is imposibble to use this wrongly because meson raise a error if arguments are not in a predefined list that described in meson_options.txt.
for more information, refer to https://mesonbuild.com/Build-options.html and also take a look at meson_options.txt please.
Differential Revision: https://phab.enlightenment.org/D7563
After some fixes and updates in ewpi we now have gstreamer, libtiff and
bullet ready as cross compiled dependencies. Time to enable them in the
build.
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7378
The docker image now contains a native efl build as bootstrap for doing
the mingw cross-build. Paths to the generator binaries have been
update. We also switched to using a dedicated Fedora28-mingw docker
image for now to have a more stable environment for now.
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7377
it appears that there is a bug in meson (which is fixed upstream).
For now this disables the tests, it can be reverted later once 0.49 is
released.
This fixes the cron job for 2 jobs.
Differential Revision: https://phab.enlightenment.org/D7410
this updates the scripts in order to make ninja all / ninja test work as
expected. For now there are 2 new jobs options-enabled and
options-disabled. mingw and osx will follow in another commit.
Benchmarks are disabled for now, as the eina benchmark does not seem to
terminate.
Differential Revision: https://phab.enlightenment.org/D7255
The misc build already had most of the extra options enabled for the EFL
build. Instead of wasting CPU cycles on a full seperate build for just
wayland options we merge these two together. In the process we rename
from misc (pretty vague) to options-enabled and options-disbaled.
Due to the combination of options we need to disable sdl for now. It
clashes with the OpenGL ES option we enable for wayland. Having build
for the different GL flavours is something we should look into at some
point.
Patch is based on the patches from Marcel in D7253 and D7254
Differential Revision: https://phab.enlightenment.org/D7320
We are using the EFL windows package installer (ewpi) from Vincent Torri
here (thanks!) to setup all the needed cross compiled dependencies for
EFL.
The make target is disabled as we are not able to execute the windows
binaries withour additional work to run check.
Work is ongoing in ewpi to have the dependencies provided for soem of
the disabled build options (gstreamer, webp, tiff, physics, etc). Once
these are working well in ewpi we will enable them here as well.
[Brought back after revert. CI image is now fixed to have the needed
pre-built windows components again]
Differential Revision: https://phab.enlightenment.org/D7294
For a long time now we maintain the needed dockerfiles in a different
repo: https://github.com/Enlightenment/ci-support-files
Doing so allows use to easily use Docker Hub to build these images being
used by Travis CI. The ones deleted here are outdated for a while now
and of no real use anymore.
Differential Revision: https://phab.enlightenment.org/D7307
We are using the EFL windows package installer (ewpi) from Vincent Torri
here (thanks!) to setup all the needed cross compiled dependencies for
EFL.
The make target is disabled as we are not able to execute the windows
binaries withour additional work to run check.
Work is ongoing in ewpi to have the dependencies provided for soem of
the disabled build options (gstreamer, webp, tiff, physics, etc). Once
these are working well in ewpi we will enable them here as well.
Differential Revision: https://phab.enlightenment.org/D7294
when travis is throttling resourcse more than usual (resources are
dynamically allocated since we are not using a paid service), it
can be the case that tests fail even more than usual.
this number may need to be increased further if 5 does not provide enough
reliability
Differential Revision: https://phab.enlightenment.org/D6920
this is just spam that fills up the logs and sometimes causes builds to
abort when they reach the maximum log size
Differential Revision: https://phab.enlightenment.org/D6788
this adds a script which reimplements the distcheck rule generated from
automake and runs that script instad of 'make distcheck'
the benefit of this is that the distcheck script can run tests multiple times
to avoid intermittent failures which could potentially cause build errors.
distcheck builds are by far the longest and most costly of all ci builds, so
it's important to reduce failure rates in these builds to the absolute minimum
in order to keep ci build times low
cibuildme
fix T7094
Differential Revision: https://phab.enlightenment.org/D6734
if the version number ever changes then this destroys the entire ccache
as the version is used in various places in headers which are included
throughout the tree
Differential Revision: https://phab.enlightenment.org/D6848
Summary:
if env vars change between runs then the cache is invalidated, causing
configure to print a very specific error
by running a separate script to catch this error, the build can detect
and clear the cache when necessary to avoid having to manually disable
the cache when changing build settings
Depends on D6697
Reviewers: stefan_schmidt, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6732
travis upgraded to macos high sierra overnight without notification(?)
and this is now required in order to find openssl for some reason
also disable config.cache to prevent configure errors
Differential Revision: https://phab.enlightenment.org/D6718
distcheck failures from test failures are hard to debug since distcheck
is more complicated than a regular build, this is a first step in providing
info for that debugging
Differential Revision: https://phab.enlightenment.org/D6652
the tests have all been compiled at this point using the check-build
target (separately) in order to split out test compile failures from
runtime failures, so use the check-TESTS target to run the tests without
checking whether the tests are built first
Differential Revision: https://phab.enlightenment.org/D6619
this adds a script to run make check after the build has finished,
repeating tests 3 times to try and reduce false positives from intermittent
failure tests
ref T7094
Differential Revision: https://phab.enlightenment.org/D6617
make the build a bit nicer to read
the build output is still insanely verbose, so this isn't super useful as
the 'pretty' view still takes so long to load that it's almost always better
to just read the raw text log
Differential Revision: https://phab.enlightenment.org/D6616
our autogen.sh stupidly destroys all the autotools cache files, so ensure that
we keep them around to speed up configure
Differential Revision: https://phab.enlightenment.org/D6615
make is no longer required for distcheck, so stop doing 2 full tree builds
on this build type
fixes release builds on travis
Differential Revision: https://phab.enlightenment.org/D6611
this enables caching of the autoreconf and ./configure stages of the build
using autotools-provided caching mechanisms in order to speed up these steps
fix T7136
Differential Revision: https://phab.enlightenment.org/D6608
this gets deleted after the build, so just build it in the efl directory
to avoid permission errors when building on osx
Differential Revision: https://phab.enlightenment.org/D6607
this enables and implements full support for ccache on travis builds
fix T7126
Differential Revision: https://phab.enlightenment.org/D6605
=also includes previously-submitted patches=
ci: split out ccache config setup into separate script
this provides a more unified place to set ccache options
also enable ccache compression to cut down on cache upload/download overhead
ref D6613
ci: zero ccache stats before build and add some comments for options used
zeroing the stats before each build will provide more insight into the cache
performance for each build
ref D6621
ci: break out ccache stat printing into separate script
continue to make travis.yml more readable
ref D6622
ci: add more ccache config options to improve cache direct hits
ci: disable second cpp run for ccache
this should avoid running cpp twice for files
https://ccache.samba.org/manual.html#_the_preprocessor_mode
this moves each step of the ci build into a separate script with the build
type passed as an argument, allowing for easier modification of each individual
step as necessary and making travis.yml more readable
Differential Revision: https://phab.enlightenment.org/D6604
also includes:
ci: break out make commands into travis.yml from build scripts
this simplifies the platform-specific build scripts to only perform
the configure stage of the build (and any additional setup) and then
uses standardized commands for the build
in addition to being simpler, this will also provide more/better info
about build timings
ref D6603
Summary:
travis docs explicitly state that the expectation for builds is to have
2 cpus, meaning that 10 jobs is wayyyy too many and was actually causing
some build failures due to strain on the virtual hw
this sets the number of jobs using a global variable to avoid having to set
it separately for each build
https://docs.travis-ci.com/user/reference/overview/#Virtualization-environments
Reviewers: devilhorns, ManMower
Reviewed By: ManMower
Subscribers: ManMower, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6558
Summary:
ci for now was not testing if building against the installation of efl
was working, this builds the lifegame example which ensures that elm is
build correctly.
Reviewers: stefan_schmidt
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6160
Summary:
not building with a default prefix might end up that the installed
.pc files are not fetched automatically, which makes the building of the
example fail.
Depends on D6160
Reviewers: stefan_schmidt
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6161
Some recent OSX builds failed on Travis due to a change on the macOS
image they are providing. The python package could not be installed.
==> Pouring python@2-2.7.14_3.sierra.bottle.1.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3-2
Target /usr/local/bin/2to3-2
is a symlink belonging to python. You can unlink it:
brew unlink python
We have an extra repo for these files on our github project to allow
docker hub building these images automatically for us to be ready when
CI kicks in. We still want to have them here as well to aid developer
using them for testing.
This has been used by myself in a branch for a while now and it is time
to bring it into master as a base for all future CI related work.
I plan to use the same scripts and other bits for Jenkins as well as
other CI systems later on.
What we currently cover with this setup are linux builds for three
different distros and MacOSX builds for two different versions.
Travis will only be called when new commits get mirrored onto our GitHub
mirror (which only happens once an hour). Expect delays on these builds.
https://travis-ci.org/Enlightenment/efl