Since I was having such a hard time getting this working, I figure I’ll put this up here for everyone else too.
I have a project that I want to build for both Linux and OS X using Swift on travis-ci.org.
First you’ll need a proper .travis.yml file:
| matrix: | |
| include: | |
| - os: linux | |
| dist: trusty | |
| sudo: required | |
| language: cpp | |
| - os: osx | |
| osx_image: xcode8.3 | |
| language: objective-c | |
| sudo: required | |
| script: | |
| - swift build | |
| - swift test | |
| before_install: | |
| - chmod ugo+x ./Scripts/InstallSwift.sh | |
| - . ./Scripts/InstallSwift.sh | |
| notifications: | |
| email: | |
| on_success: never | |
| on_failure: change |
This is what is working for me. The super important part is the dist: trusty and sudo: required. Without those for the linux build, you won’t get Ubuntu 14.04 and thus won’t be able to run the Swift compiler.
The InstallSwift.sh script looks like this:
| #!/bin/bash | |
| if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then | |
| DIR="$(pwd)" | |
| cd .. | |
| export SWIFT_VERSION=swift-3.1.1-RELEASE | |
| wget https://swift.org/builds/swift-3.1.1-release/ubuntu1404/${SWIFT_VERSION}/${SWIFT_VERSION}-ubuntu14.04.tar.gz | |
| tar xzf $SWIFT_VERSION-ubuntu14.04.tar.gz | |
| export PATH="${PWD}/${SWIFT_VERSION}-ubuntu14.04/usr/bin:${PATH}" | |
| cd "$DIR" | |
| else | |
| export SWIFT_VERSION=swift-3.1.1-RELEASE | |
| curl -O https://swift.org/builds/swift-3.1.1-release/xcode/${SWIFT_VERSION}/${SWIFT_VERSION}-osx.pkg | |
| sudo installer -pkg ${SWIFT_VERSION}-osx.pkg -target / | |
| export TOOLCHAINS=swift | |
| fi |
It’s not a perfect setup, but it was enough to get me up and running. Hopefully it’s helpful to others in the same boat as me.


You must be logged in to post a comment.