Commit Graph

46 Commits

Author SHA1 Message Date
Stefan Schmidt 5791ea7158 ci: travis: shorten job descriptions
Summary:
This makes job descriptions shorter and also clearer to see what env
variable belongs to what job and os.

Moving the release ready build to an earlier start position in the cron
job to shorten the total build time.
Depends on D7799

Reviewers: bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7800
2019-01-28 12:00:38 -05:00
Stefan Schmidt 8da1d8a8b2 ci: travis: enable a meson/ninja build on osx
Summary:
This cuts down the time the osx builld takes from ~30min to ~20min
Keeping the autotools osx build in the cron job for now.

Reviewers: bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7799
2019-01-28 12:00:38 -05:00
Stefan Schmidt cea392390f ci: travis: bring back default and wayland builds
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
2019-01-23 09:13:27 -05:00
Stefan Schmidt 39ed72b236 ci: travis: stop pushing images after build to docker hub
Summary:
This stopped working a while ago and we are not actively using it.
If we need it we can bring it back in a better way later.
Depends on D7708

Reviewers: bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7709
2019-01-22 08:54:39 -05:00
Stefan Schmidt ede20292a3 ci: travis: update distro tags
Summary: Switch to newer versions of Fedora, Ubuntu and Debian.

Reviewers: bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7708
2019-01-22 08:53:55 -05:00
Stefan Schmidt 8e9f773f04 travis: re-enable mingw build with newer eolian_gen for bootstrap
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
2018-12-07 12:39:35 +01:00
Stefan Schmidt cc07318377 travis: temporarily disabled mingw job as hot fix
Since a recent commit eolian_gen from HEAD is needed to build efl.
So far the mingw cross build avoided the double build of efl for
bootstrapping purpose and used the 1.21 package for the cross build.

This does no longer work and all Travis jobs are now failung due to
this. As a hotfix I disable the build now (Friday evening) to have
working builds over the weekend and find a better solution next week.
2018-11-23 17:11:05 +01:00
Stefan Schmidt aa19ecb390 travis: reorder jobs to reduce overall build time per push
We currently have 6 jobs runnign after a git push, but only 5 parallel
workers available. The macos build takes way longer then the meson
builds for example which we will use to our advantage.

Starting the longest builds (macos and mingw) first and letting the
second meson build start after the first ones finishes. That way the
limitation is still the long running macos job.

Differential Revision: https://phab.enlightenment.org/D7321
2018-11-23 14:40:05 +01:00
Marcel Hollerbach 8d1a1f603b ci: here comes ninja!
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
2018-11-23 14:38:26 +01:00
Stefan Schmidt defded25eb travis: merge wayland build into misc and rename to options-enabled
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
2018-11-23 14:20:25 +01:00
Stefan Schmidt 1a17f41584 ci: mingw build target to cross compile EFL for Windows
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
2018-11-20 11:17:37 +01:00
Stefan Schmidt c60e4c7c24 travis: drop archlinux from Travis cron builds
With Archlinux being a rolling release every new build of the docker
image could contain new changes that would break for us. For all other
distros we also follow the latest release approach where we want to make
sure efl still builds for it. With Archlinux this is not possible by its
nature. Luckily enough efl developers use Archlinux so the risk of
issues being left unnoticed is small enough.

Differential Revision: https://phab.enlightenment.org/D7306
2018-11-20 10:29:40 +01:00
Marcel Hollerbach ffb992cd4f Revert "ci: mingw build target to cross compile EFL for Windows"
This reverts commit 883058b92b.

This seems to bring up errors in the build -ldbus-1 cannot be found.
Revisions is reopened.
2018-11-19 19:00:11 +01:00
Stefan Schmidt 883058b92b ci: mingw build target to cross compile EFL for Windows
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
2018-11-19 09:29:43 +01:00
Stefan Schmidt 372374382a travis: move parts of our build matrix to only run on the daily travis cron job
We need to keep our builds running for every push to a minimum. Various
distro builds as well as the release-ready build can happily run once a
day.
This commit also switches from a build matrix to a simple list of build
jobs to allow the usage of build type = cron condition (not possible
with the matrix builds)

Differential Revision: https://phab.enlightenment.org/D7293
2018-11-16 15:39:41 +01:00
Mike Blumenkrantz 88ecbdadc3 ci: disable notifications for canceled builds
canceled builds indicate that someone is actively watching a build,
likely in order to test changes. there's no point in spamming irc for
these events

Differential Revision: https://phab.enlightenment.org/D6730
2018-08-16 11:35:50 +02:00
Mike Blumenkrantz 52b8e684e2 ci: disable unnecessary build targets
examples and install are both built by distcheck build, no need to also
build them in every other build

there's also no need to try building an app against the compiled libraries
since ci runs unit tests, requiring binaries to run after linking to the
libraries

Differential Revision: https://phab.enlightenment.org/D6663
2018-08-16 11:11:44 +02:00
Mike Blumenkrantz 1edf1295e8 ci: automatically clear config.cache if it cannot be used
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
2018-08-08 09:38:25 -04:00
Mike Blumenkrantz c57b3912a5 ci: add build time to IRC notification
this will be useful while profiling CI builds to know whether a patch
has made builds slower so that it can potentially be examined

Differential Revision: https://phab.enlightenment.org/D6666
2018-08-03 14:07:13 +02:00
Mike Blumenkrantz 9d631d57a5 ci: explicitly set PKG_CONFIG_PATH for openssl
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
2018-08-01 09:48:44 +02:00
Mike Blumenkrantz 0dc35fe8b3 ci: disable built-in make rules and variables
these slow down build times and don't benefit us

Differential Revision: https://phab.enlightenment.org/D6651
2018-07-30 17:40:57 +02:00
Mike Blumenkrantz 5e9b5d315a ci: run make check in build
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
2018-07-26 08:55:59 +02:00
Mike Blumenkrantz 6652373897 ci: make release-ready not allow failures
this should no longer fail

Differential Revision: https://phab.enlightenment.org/D6612
2018-07-26 08:55:58 +02:00
Mike Blumenkrantz a4afe4b300 ci: add osx homebrew packages to cache
this adds the downloaded homebrew package files to a cache in order to
avoid needing to separately download each file at the start of each build

not sure we can do better here unless we buy the enterprise-level travis
package which allows building with custom osx images which we could pre-install
all these dependencies on

ref T7096

Differential Revision: https://phab.enlightenment.org/D6610
2018-07-26 08:55:58 +02:00
Mike Blumenkrantz 322fe28951 ci: disable app build on osx
this isn't currently working, disable for now

Differential Revision: https://phab.enlightenment.org/D6609
2018-07-26 08:55:58 +02:00
Mike Blumenkrantz 3c762fbe1f ci: add autoconf caching
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
2018-07-26 08:55:58 +02:00
Mike Blumenkrantz 005ba93234 ci: add ccache support
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
2018-07-26 08:55:58 +02:00
Mike Blumenkrantz 45988ac6c0 ci: refactor all build steps into separate build scripts
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
2018-07-26 08:55:58 +02:00
Mike Blumenkrantz 5d78254c45 ci: add some line breaks in travis.yml for readability
no functional changes

Differential Revision: https://phab.enlightenment.org/D6602
2018-07-24 14:02:25 +02:00
Mike Blumenkrantz afa3b7c829 ci: always force eio to use fallback monitoring method
inotify is not available in docker containers, so disable this for now
as it will always cause codepaths relying on it to time out

Differential Revision: https://phab.enlightenment.org/D6601
2018-07-24 12:25:38 +02:00
Mike Blumenkrantz d279918174 ci: set number of make jobs globally and decrease to 5 jobs
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
2018-07-12 09:17:36 -04:00
Stefan Schmidt d9e723ae53 ci: travis: tweak the IRC notification message template to our needs
I wanted to have the commit subject in it. This could be further changed
if needed.

https://docs.travis-ci.com/user/notifications/#Configuring-IRC-notifications
2018-05-17 15:38:28 +02:00
Stefan Schmidt 7fd14ce1ba ci: travis: enable IRC notifications to #edevelop 2018-05-17 15:08:22 +02:00
Stefan Schmidt d292592e02 ci: travis: move macos build out of allowed failures
It is working fine again and we want to know if something breaks it.
2018-05-16 13:49:40 +02:00
Stefan Schmidt c5a253f3f0 ci: travis: switch Ubuntu and Fedora builds to latest release 2018-05-16 13:49:40 +02:00
Stefan Schmidt 8a2547aaea ci: add new build to test release profile and distcheck
To avoid surprises when starting the release process make sure we have a
build which actually runs the release profile and tests distcheck.
2018-05-04 09:23:59 +02:00
Stefan Schmidt f2ec39c8e6 ci: travis: create misc-disabled build
This build should cover all kind of disable configure flags we support
in efl. Making sure we still work with all of these when a commit comes
in.
2018-04-27 08:55:06 +02:00
Stefan Schmidt 0286a69e9e ci: travis: allow for some failures in the matrix build
We want to make sure to have a stable and reliable subset of builds that
define if the build passed or not.
We also want to have builds which are more experimental. They give us a
good insight, but we are not yet ready to have them supported officially
as need-to-pass build. Namely the macOS build.

Another side effect of this change is that we reduce the critical build
matrix to 5 builds. The exact number of parallel ones we are allowed. With
fast_finish Travis will not wait for the other ones to finish before
setting the build status. This will allow us to have all builds in
parallel and not waiting for build #6 to be finished.
2018-04-25 15:34:35 +02:00
Stefan Schmidt 564e8987b9 travis: add misc and wayland build options to build matrix 2018-01-10 09:49:53 +01:00
Stefan Schmidt 823cc96ae9 travis: drop older osx build, latest should be enough 2018-01-10 09:49:53 +01:00
Stefan Schmidt b31fa6493f travis: test docker build with prebuild image for speedup 2018-01-10 09:49:53 +01:00
Stefan Schmidt fdf0812883 ci: actually install systemd in the Ubuntu 17.10 Dockerfile
This allows us to build efl with systemd support on it and enables the
newer Ubunutu version by default.
2018-01-09 08:32:13 +01:00
Stefan Schmidt e04df31bfb ci: stay with 17.04 for Ubuntu on Travis builds
There is some glitch with 17.10 and systemd in our build. Roll back here
to keep the Travis build stable until this is investigated.
2018-01-04 08:46:10 +01:00
Stefan Schmidt 24bdcd43f8 ci: add Archlinux Dockerfile and use it in Travis 2018-01-03 15:34:38 +01:00
Stefan Schmidt 2938d6335c ci: update travis distro builds for Ubuntu and Fedora to newer versions
We already have the needed Dockerfiles for the latest releases and they
work fine. Make sure Travis runs use them.
2018-01-03 15:34:37 +01:00
Stefan Schmidt 30c085ca0e ci: initial travis CI support for Linux distros and MacOSX builds
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
2017-09-28 15:26:55 +02:00