Skip to content

Add CMake to Travis CI config#2392

Merged
uklotzde merged 9 commits intomixxxdj:masterfrom
Holzhaus:travis-cmake-ci
Dec 17, 2019
Merged

Add CMake to Travis CI config#2392
uklotzde merged 9 commits intomixxxdj:masterfrom
Holzhaus:travis-cmake-ci

Conversation

@Holzhaus
Copy link
Copy Markdown
Member

Unlike PR #2332, this does not replace SCons with CMake. Instead it adds CMake builds to the CI config but still keeps the SCons config as well.

This allows us to prevent breakage in either of those two build systems.

@Holzhaus Holzhaus added the build label Dec 10, 2019
@daschuer
Copy link
Copy Markdown
Member

Is Mixxx build twice than?
We already hit build time outs.

@Holzhaus
Copy link
Copy Markdown
Member Author

Yes, but as a separate job, so it shouldn't make the timeouts worse. The complete cmake build job on Linux takes less than 5 minutes due to ccache. On OSX the problem is homebrew taking ages to install dependencies, not the build itself.

@daschuer
Copy link
Copy Markdown
Member

Ah Ok, that makes sense.
Does it actually work now?

Comment thread .travis.yml
@uklotzde uklotzde added this to the 2.3.0 milestone Dec 11, 2019
@uklotzde
Copy link
Copy Markdown
Contributor

The macOS CMake build timed out, whereas the SCons build finished in time. Merge?

@Holzhaus
Copy link
Copy Markdown
Member Author

The macOS CMake build timed out, whereas the SCons build finished in time. Merge?

I'm currently checking if hardcoding 4 threads makes the build pass reliably. This is what we did before, and I switched that to nproc/sysctl -n hw-npcu because I though this would be the right thing to do. According to Travis, the build workers only have 2 cores so this might be the cause of the issue (4 threads could make sense when the threads are stalling due to I/O wait).

@Holzhaus
Copy link
Copy Markdown
Member Author

Looks like that worked, let's wait for another CI build. If everything works we can merge this.

Comment thread .travis.yml
# For SCons builds
- SCONSFLAGS="test=1 mad=1 faad=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0"
# For CMake builds
- CMAKEFLAGS="-DMAD=ON -DFAAD=ON -DOPUS=ON -DMODPLUG=ON -DWAVPACK=ON -DHSS1394=OFF"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FAAD2 should be disabled for macOS builds, both for SCons and CMake. I see errors to load the corresponding dynamic library at runtime during the tests. We could move the corresponding options into the platform-dependent EXTRA flags.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But we install faad2 via homebrew, strange.

@uklotzde
Copy link
Copy Markdown
Contributor

uklotzde commented Dec 13, 2019

The concurrent GlobalCacheTrack test on macOS timed out after 30 sec, but only in the CMake build. The same test in the SCons build finished after 25 sec. On my local Skylake system this test runs for 0.5 sec.

@Holzhaus
Copy link
Copy Markdown
Member Author

Oof, the Mac builds on Travis seem to be at risk of failing due to homrbrew, locking up or timing out. I'm considering to undo the OSX change and only add a Linux CMake build atm. @uklotzde what do you think?

@uklotzde
Copy link
Copy Markdown
Contributor

Fix for the test timeouts: uklotzde@7a20bc9

Locally this test actually took ~2 sec. vs. 25-30 sec. on Travis.

@uklotzde
Copy link
Copy Markdown
Contributor

The macOS environment setup is really brittle and a mess. Even though it fails often I would like to keep it in to detect new issues early.

@uklotzde
Copy link
Copy Markdown
Contributor

The test finished in 24.56 sec. Hopefully enough headroom to not exceed the 30 sec. timeout limit.

@uklotzde
Copy link
Copy Markdown
Contributor

LGTM

@uklotzde uklotzde merged commit 272eec7 into mixxxdj:master Dec 17, 2019
@uklotzde
Copy link
Copy Markdown
Contributor

@Holzhaus SCons builds on macOS is failing for all new PRs with the same error. Are the mismatching OS library versions for gtest (10.11 vs. 10.13) just coincidence or related to the recent changes in any way? I don't see a connection.

@Holzhaus
Copy link
Copy Markdown
Member Author

I'm currently investigating this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants