language: c
cache: ccache

os:
  - linux

compiler:
  - gcc

install:
  - git fetch --unshallow --tags # t/porting/cmp_version.t
  # install & enable ccache on osx
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ccache; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi

env:
    global:
        - JOBS=4
    matrix:
        # exercise a variety of build options
        # threads often cause build issues
        - CONFIGURE_ARGS='-Uusethreads'
        - CONFIGURE_ARGS='-Dusethreads'
        # it's easy to miss dVAR
        - CONFIGURE_ARGS='-DPERL_GLOBAL_STRUCT_PRIVATE'
        # test scripts can be sensitive to PERL_UNICODE, and check long doubles
        - CONFIGURE_ARGS='-Duseshrplib -Dusesitecustomize -Duselongdouble' PERL_UNICODE='' LANG='en_US.UTF-8'
        # we've rarely had a problem with non-Englush locales, and exercise quadmath
        - CONFIGURE_ARGS='-Duseshrplib -Dusequadmath -Dusecbacktrace -Dusethreads' PERL_UNICODE='' LANG='de_DE.UTF-8'

matrix:
  fast_finish: true

script:
  - ./Configure -des -Dusedevel -Uversiononly -Dcc="ccache $CC" $CONFIGURE_ARGS -Dprefix=$HOME/perl-blead -DDEBUGGING
# all script commands are always run
# rather than using one very long oneliner using '&&', just always check the build status
  - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then TEST_JOBS=$JOBS make -j$JOBS test_harness_notty; fi
  - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then make -j$JOBS install; fi
  - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then $HOME/perl-blead/bin/perlivp; fi

addons:
    apt:
        packages:
            - file
            - cpio
            - libdb-dev
            - libgdbm-dev
            - zlib1g-dev
            - libbz2-dev

notifications:
## use dedicated email for smoking ?
#  email:
#    recipients:
#      - perl5-porters@perl.org
#    on_success: never  # default: change
#    on_failure: always # default: always
  irc:
    nick: travisci
    channels:
      - "irc.perl.org#p5p-qa"
#      - "irc.perl.org#bot-test"
    template:
      - "Report for %{repository} (%{commit}) from %{author} (%{elapsed_time})"
      - "Status: %{message}"
      - "Build URL: %{build_url}"
      - "GitHub URL: https://github.com/%{repository_slug}/commit/%{commit}"
    on_success: change # default: always
    on_failure: always # default: always
#    use_notice: true
