sudo: required
language: generic
services:
  - docker
env:
  global:
    - DOCKER="goldarte/img-tool:v0.5"
    - TARGET_REPO="https://github.com/${TRAVIS_REPO_SLUG}.git"
    - if [[ -z ${TRAVIS_TAG} ]]; then IMAGE_VERSION="${TRAVIS_COMMIT}}"; else IMAGE_VERSION="${TRAVIS_TAG}"; fi
    - IMAGE_NAME="$(basename -s '.git' ${TARGET_REPO})_${IMAGE_VERSION}.img"
git:
  depth: false
jobs:
  fast_finish: true
  include:
    - stage: Build
      name: "Clever Modified Image Build"
      cache:
        directories:
        - imgcache
      before_script:
        - docker pull ${DOCKER}
# Check if there are any cached images, copy them to our "images" directory
        - if [ -n "$(ls -A imgcache/*.zip)" ]; then mkdir -p images && cp imgcache/*.zip images; fi
      script:
        - docker run --privileged --rm -v /dev:/dev -v $(pwd):/mnt -e TRAVIS_TAG="${TRAVIS_TAG}" ${DOCKER}
      before_cache:
        - cp images/*.zip imgcache
      before_deploy:
        # Set up git user name and tag this commit
        - git config --local user.name "goldarte"
        - git config --local user.email "goldartt@gmail.com"
        - sudo chmod -R 777 *
        - cd images && zip ${IMAGE_NAME}.zip ${IMAGE_NAME}
      deploy:
        provider: releases
        api_key: ${GITHUB_OAUTH_TOKEN}
        file: ${IMAGE_NAME}.zip
        skip_cleanup: true
        on:
          tags: true
        draft: true
        name: ${TRAVIS_TAG}

    - stage: Test
      name: Execute auto tests for drone modules
      language: python
      python: 2.7
      script:
        - cd drone
        - pip install -r requirements.txt
        - pytest

stages:
  - Test
  - Build
