branches: only: - master stages: - lint - compile - test jobs: include: - &pod stage: lint osx_image: xcode8.3 env: SWIFT=3.1 name: pod lib lint --swift-version=3.1 os: osx language: objective-c before_install: gem install cocoapods --prerelease --version 1.6.0.beta.1 install: carthage bootstrap --no-build PromiseKit script: | cd Carthage/Checkouts/PromiseKit mv .github/PromiseKit.podspec . rm -rf Extensions/Foundation/Sources cp -R ../../../Sources Extensions/Foundation pod lib lint --subspec=PromiseKit/Foundation --fail-fast --swift-version=$SWIFT - <<: *pod osx_image: xcode9.2 env: SWIFT=3.2 name: pod lib lint --swift-version=3.2 - <<: *pod osx_image: xcode9.4 env: SWIFT=3.3 name: pod lib lint --swift-version=3.3 - <<: *pod osx_image: xcode10 env: SWIFT=3.4 name: pod lib lint --swift-version=3.4 - <<: *pod osx_image: xcode9.2 env: SWIFT=4.0 name: pod lib lint --swift-version=4.0 - <<: *pod osx_image: xcode9.4 env: SWIFT=4.1 name: pod lib lint --swift-version=4.1 - <<: *pod osx_image: xcode10 env: SWIFT=4.2 name: pod lib lint --swift-version=4.2 - &linux stage: compile env: SWIFT_BUILD_VERSION=3 SWIFT_VERSION=4.0 # ^^ we have some source-conditionals for this version name: Linux / Swift 3.2.0 os: linux dist: trusty sudo: required language: generic before_install: eval "$(curl -sL https://swiftenv.fuller.li/install.sh)" script: swift build -Xswiftc -swift-version -Xswiftc $SWIFT_BUILD_VERSION - <<: *linux env: SWIFT_BUILD_VERSION=3 SWIFT_VERSION=4.0.3 name: Linux / Swift 3.2.3 - <<: *linux env: SWIFT_BUILD_VERSION=3 SWIFT_VERSION=4.1.2 name: Linux / Swift 3.3 - <<: *linux env: SWIFT_BUILD_VERSION=3 SWIFT_VERSION=4.2 name: Linux / Swift 3.4 - <<: *linux env: SWIFT_BUILD_VERSION=4 SWIFT_VERSION=4.0 name: Linux / Swift 4.0.0 # ^^ we have some source-conditionals for this version - <<: *linux env: SWIFT_BUILD_VERSION=4 SWIFT_VERSION=4.0.3 name: Linux / Swift 4.0.3 - <<: *linux env: SWIFT_BUILD_VERSION=4 SWIFT_VERSION=4.1.2 name: Linux / Swift 4.1 - <<: *linux env: SWIFT_BUILD_VERSION=4 SWIFT_VERSION=4.2 name: Linux / Swift 4.2 - &swiftpm stage: compile name: Xcode 8.3 / SwiftPM os: osx osx_image: xcode8.3 language: objective-c script: swift build - <<: *swiftpm name: Xcode 9.4 / SwiftPM osx_image: xcode9.4 - <<: *swiftpm name: Xcode 10.0 / SwiftPM osx_image: xcode10 - &test stage: test osx_image: xcode10 name: macOS Tests env: DST='arch=x86_64' PLAT=macOS os: osx language: objective-c cache: directories: - Carthage before_install: carthage bootstrap --cache-builds --no-use-binaries --platform $PLAT install: xcodebuild -scheme PMKFoundation -target PMKFoundation -quiet -destination "$DST" SWIFT_TREAT_WARNINGS_AS_ERRORS=YES build script: xcodebuild -scheme PMKFoundation -quiet -destination "$DST" test after_success: bash <(curl -s https://codecov.io/bash); - <<: *test env: DST='OS=12.0,name=iPhone SE' PLAT=iOS name: iOS Tests - <<: *test env: DST='OS=12.0,name=Apple TV' PLAT=tvOS name: tvOS Tests