FabrizioBrancati/BFKit-Swift

View on GitHub
.travis.yml

Summary

Maintainability
Test Coverage
env:
  global:
    - IOS_SCHEME="BFKit iOS"
    - MACOS_SCHEME="BFKit macOS"
    - WATCHOS_SCHEME="BFKit watchOS"
    - EXAMPLE_SCHEME="BFKitExample"

matrix:
  include:
    - name: Ubuntu 14.04 / SwiftPM
      os: linux
      language: generic
      sudo: required
      dist: trusty
      env: SPM="YES"
    - name: Ubuntu 16.04 / SwiftPM
      os: linux
      language: generic
      sudo: required
      dist: xenial
      env: SPM="YES"
    - name: macOS / Xcode 11.3 / SwiftPM
      os: osx
      language: objective-c
      osx_image: xcode11.3
      env: SPM="YES"
    - name: macOS / Xcode 11.3 / iOS 13.1 / iPhone 11 Pro Max
      os: osx
      language: objective-c
      osx_image: xcode11.3
      env: PROJ="BFKit.xcodeproj"                DESTINATION="OS=13.1,name=iPhone 11 Pro Max"            SCHEME="$IOS_SCHEME"     RUN_TESTS="YES" LINT="NO"  COVERAGE="YES" EXAMPLE="NO"
    - name: macOS / Xcode 11.3 / watchOS 6.0 / Apple Watch Series 5 - 44mm
      os: osx
      language: objective-c
      osx_image: xcode11.3
      env: PROJ="BFKit.xcodeproj"                DESTINATION="OS=6.0,name=Apple Watch Series 5 - 44mm"   SCHEME="$WATCHOS_SCHEME" RUN_TESTS="NO"  LINT="NO"  COVERAGE="NO"  EXAMPLE="NO"
    - name: macOS / Xcode 11.3
      os: osx
      language: objective-c
      osx_image: xcode11.3
      env: PROJ="BFKit.xcodeproj"                DESTINATION="arch=x86_64"                               SCHEME="$MACOS_SCHEME"   RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"  EXAMPLE="NO"
    - name: macOS / Xcode 11.3 / iOS 13.1 / iPhone 8 Plus / Demo
      os: osx
      language: objective-c
      osx_image: xcode11.3
      env: PROJ="Example/BFKitExample.xcodeproj" DESTINATION="OS=13.1,name=iPhone 8 Plus"                SCHEME="$EXAMPLE_SCHEME" RUN_TESTS="NO"  LINT="NO"  COVERAGE="NO"  EXAMPLE="YES"

before_install:
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
      gem install xcpretty -N --no-ri --no-rdoc;
      gem install cocoapods --pre --no-rdoc --no-ri --no-document;
      brew update;
      brew outdated carthage || brew upgrade carthage;
      gem install slather;
    fi

install:
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then
      eval "$(curl -sL https://swiftenv.fuller.li/install.sh)";
    fi
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
      ./install_swiftlint.sh;
    fi

script:
  - set -o pipefail

  - swift -version

  - if [ "$SPM" == "YES" ]; then
      swift build;
      swift test;
    fi

  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
      xcodebuild -version;
      xcodebuild -showsdks;
    fi

  - if [ "$RUN_TESTS" == "YES" ]; then
      xcodebuild clean test -project "$PROJ" -scheme "$SCHEME" -destination "$DESTINATION" -enableCodeCoverage YES | xcpretty;
    fi
  - if [ "$RUN_TESTS" == "NO" ]; then
      xcodebuild clean build -project "$PROJ" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Release | xcpretty;
    fi

  - if [ "$EXAMPLE" == "YES" ]; then
      xcodebuild clean build -project "$PROJ" -scheme "$SCHEME" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO | xcpretty;
    fi

  - if [ "$LINT" == "YES" ]; then
      swiftlint;
      pod lib lint --verbose;
      carthage build --no-skip-current;
    fi

after_success:
  - if [ "$COVERAGE" == "YES" ]; then
      slather;
    fi