sudo: required
language: python
jdk: openjdk8
services: docker
python: '3.6'
cache: pip
matrix:
  fast_finish: true

before_install:
  # PRs to master are only ok if coming from dev branch
  - '[ $TRAVIS_PULL_REQUEST = "false" ] || [ $TRAVIS_BRANCH != "master" ] || ([ $TRAVIS_PULL_REQUEST_SLUG = $TRAVIS_REPO_SLUG ] && ([ $TRAVIS_PULL_REQUEST_BRANCH = "dev" ] || [ $TRAVIS_PULL_REQUEST_BRANCH = "patch" ]))'
  # Pull the docker image first so the test doesn't wait for this
  - docker pull nfcore/sarek:dev
  # Fake the tag locally so that the pipeline runs properly
  # Looks weird when this is :dev to :dev, but makes sense when testing code for a release (:dev to :1.0.1)
  - docker tag nfcore/sarek:dev nfcore/sarek:2.5

install:
  # Install Nextflow
  - mkdir /tmp/nextflow && cd /tmp/nextflow
  - wget -qO- get.nextflow.io | bash
  - sudo ln -s /tmp/nextflow/nextflow /usr/local/bin/nextflow
  # Install nf-core/tools
  - pip install --upgrade pip
  - pip install nf-core
  # Reset
  - mkdir ${TRAVIS_BUILD_DIR}/tests && cd ${TRAVIS_BUILD_DIR}/tests
  # Install markdownlint-cli
  - sudo apt-get install npm && npm install -g markdownlint-cli

env:
  - NXF_VER='19.04.0' # Specify a minimum NF version that should be tested and work
  - NXF_VER='' # Plus: get the latest NF version and check that it works

script:
  # Lint the pipeline code
  - nf-core lint ${TRAVIS_BUILD_DIR}
  # Lint the documentation
  - markdownlint ${TRAVIS_BUILD_DIR} -c ${TRAVIS_BUILD_DIR}/.github/markdownlint.yml
  # Run the pipeline with the test profile
  - nextflow run ${TRAVIS_BUILD_DIR} -profile test,docker