FabrizioBrancati/Queuer

View on GitHub
.travis.yml

Summary

Maintainability
Test Coverage
env:
  global:
    - IOS_SCHEME="Queuer iOS"
    - MACOS_SCHEME="Queuer macOS"
    - TVOS_SCHEME="Queuer tvOS"
    - WATCHOS_SCHEME="Queuer watchOS"

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: Ubuntu 18.04 / SwiftPM
      os: linux
      language: generic
      sudo: required
      dist: bionic
      env: SPM="YES"
    - name: macOS / Xcode 11.1 / SwiftPM
      os: osx
      language: objective-c
      osx_image: xcode11.1
      env: SPM="YES"
    - name: macOS / Xcode 10.2 / SwiftPM
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: SPM="YES"
    - name: macOS / Xcode 11.1 / iOS 13.1 / iPhone 11 Pro Max
      os: osx
      language: objective-c
      osx_image: xcode11.1
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=13.1,name=iPhone 11 Pro Max"          SCHEME="$IOS_SCHEME"     RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2 / iOS 12.2 / iPhone X
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=12.2,name=iPhone X"                   SCHEME="$IOS_SCHEME"     RUN_TESTS="YES" LINT="NO"  COVERAGE="YES"
    - name: macOS / Xcode 10.2 / iOS 11.4 / iPhone 7 Plus
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=11.4,name=iPhone 7 Plus"              SCHEME="$IOS_SCHEME"     RUN_TESTS="YES" LINT="YES" COVERAGE="NO"
    - name: macOS / Xcode 10.2 / iOS 10.3.1 / iPhone 6
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=10.3.1,name=iPhone 6"                 SCHEME="$IOS_SCHEME"     RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 11.1 / tvOS 13.1 / Apple TV 4K
      os: osx
      language: objective-c
      osx_image: xcode11.1
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=13.0,name=Apple TV 4K"                SCHEME="$TVOS_SCHEME"    RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2 / tvOS 12.2 / Apple TV 4K
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=12.2,name=Apple TV 4K"                SCHEME="$TVOS_SCHEME"    RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2 / tvOS 11.2 / Apple TV 4K
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=11.2,name=Apple TV 4K"                SCHEME="$TVOS_SCHEME"    RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 11.1 / watchOS 6.0 / Apple Watch Series 5 - 44mm
      os: osx
      language: objective-c
      osx_image: xcode11.1
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=6.0,name=Apple Watch Series 5 - 44mm" SCHEME="$WATCHOS_SCHEME" RUN_TESTS="NO"  LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2 / watchOS 5.2 / Apple Watch Series 4 - 44mm
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=5.2,name=Apple Watch Series 4 - 44mm" SCHEME="$WATCHOS_SCHEME" RUN_TESTS="NO"  LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2 / watchOS 4.2 / Apple Watch Series 3 - 38mm
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=4.2,name=Apple Watch Series 3 - 38mm" SCHEME="$WATCHOS_SCHEME" RUN_TESTS="NO"  LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2 / watchOS 3.2 / Apple Watch Series 2 - 42mm
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="OS=3.2,name=Apple Watch Series 2 - 42mm" SCHEME="$WATCHOS_SCHEME" RUN_TESTS="NO"  LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 10.2
      os: osx
      language: objective-c
      osx_image: xcode10.2
      env: PROJ="Queuer.xcodeproj" DESTINATION="arch=x86_64"                             SCHEME="$MACOS_SCHEME"   RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"
    - name: macOS / Xcode 11.1
      os: osx
      language: objective-c
      osx_image: xcode11.1
      env: PROJ="Queuer.xcodeproj" DESTINATION="arch=x86_64"                             SCHEME="$MACOS_SCHEME"   RUN_TESTS="YES" LINT="NO"  COVERAGE="NO"

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 package clean;
      ruby generate_linux_tests.rb;
      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 [ "$LINT" == "YES" ]; then
      swiftlint;
      pod lib lint --verbose;
      carthage build --no-skip-current;
    fi

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