Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add more travis targets #2

Open
dsvensson opened this issue May 2, 2016 · 2 comments
Open

Add more travis targets #2

dsvensson opened this issue May 2, 2016 · 2 comments

Comments

@dsvensson
Copy link
Member

Now that there's a basic travis configuration, additional targets ought to be added.

Reasonable permutations:

  • OS
    • Linux
    • Darwin
  • Compiler
    • gcc6 [linux]
    • clang llvm 3.8 [linux]
    • clang apple [darwin]
  • Qt versions
    • Qt4
    • Qt5

For Qt5, there's a PPA at LaunchPad available via:
sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa

To get clang builds, on Linux at least, we need to compile against xmms2-devel, or perform some header patching at build time as there has been clang related fixes since last stable release. Another crazy thing would be to release a new xmms2-stable :)

When adding this complexity, the actual build script should be broken out into a separate file rather than the .travis.yml. The script should also implemented in an expressive language, maybe Python, as dependencies should be conditionally installed to keep the build time down as much as possible.

@Malvineous
Copy link
Member

If it helps, for OSX only, I needed a custom version of Boost for my own projects. I couldn't get this under Travis/OSX unless I compiled from source which took a really long time, almost the time limit of the Travis instance. Not having access to a Mac, I created travis-homebrew-bottle which would compile a project in an OSX instance, then package it up in a Homebrew Bottle (binary package) and upload it as a Github release.

You could use this either as a separate project or as part of xmms2-devel to, upon a successful build under OSX, upload the binary package to Github. Promoe could then download and install this package during the build process to get the latest version of xmms2-devel without needing to compile anything extra.

I guess you could do the same thing for Linux, doing a ./waf --destdir="temp" install in xmms2-devel then packaging up that directory and uploading it, extracting it again at the start of Promoe's build process, so you're always compiling against the latest code.

@dsvensson
Copy link
Member Author

dsvensson commented May 2, 2016

homebrew sucks :) for xmms2 we're just installing macports and going with that instead

MACPORTS_PKGS=(
   "pkg1"
   "pkg2"
   ....
)

function darwin_install {
    filename=MacPorts-2.3.4-10.11-ElCapitan.pkg
    curl -O "https://distfiles.macports.org/MacPorts/$filename"
    sudo installer -pkg $filename -target /

    export PATH=/opt/local/bin:$PATH
    export COLUMNS=2048

    sudo port selfupdate
    for pkg in "${MACPORTS_PKGS[@]}"
    do
        sudo port install --no-rev-upgrade $pkg
    done

    sudo port select --set python python27
    sudo port select --set cython cython27
}

Performance hurts a bit but I find macports a very stable and large repository. Too bad Travis don't have macports as a first class citizen - local http cache for its binaries and so on.

As for installing latest libxmmsclient snapshot, cloning and building is so fast, it's not worth adding some binary publishing anywhere else as it cannot drive downstream promoe travis builds on its own (pushing new code to xmms2 for example).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants