os: linux dist: xenial language: generic services: - docker env: global: - DOCKER="sfalexrog/img-tool:qemu-update" - 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: 50 jobs: fast_finish: true include: - stage: Build name: "Raspberry Pi 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: - if [[ -z ${TRAVIS_TAG} && "${TRAVIS_PULL_REQUEST}" != "false" ]]; then echo "Commit range is ${TRAVIS_COMMIT_RANGE}" && if [ $(git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -v ^"docs/" | wc -l) -eq 0 ]; then echo " === Docs-only change; skipping build ===" && export SKIP_BUILD=true; fi; fi - if [ -z ${SKIP_BUILD} ]; then docker run --privileged --rm -v /dev:/dev -v $(pwd):/builder/repo -e TRAVIS_TAG="${TRAVIS_TAG}" ${DOCKER}; fi 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 token: ${GITHUB_OAUTH_TOKEN} file: ${IMAGE_NAME}.zip skip_cleanup: true on: tags: true draft: true name: ${TRAVIS_TAG} - stage: Build name: "Native Kinetic build" env: - NATIVE_DOCKER=ros:kinetic-ros-base before_script: - docker pull ${NATIVE_DOCKER} script: - docker run --rm -v $(pwd):/root/catkin_ws/src/clover ${NATIVE_DOCKER} /root/catkin_ws/src/clover/builder/standalone-install.sh - stage: Build name: "Native Melodic build" env: - NATIVE_DOCKER=ros:melodic-ros-base before_script: - docker pull ${NATIVE_DOCKER} script: - docker run --rm -v $(pwd):/root/catkin_ws/src/clover ${NATIVE_DOCKER} /root/catkin_ws/src/clover/builder/standalone-install.sh - stage: Build name: "Documentation" language: node_js node_js: - "10" before_script: - sudo sh -c "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections" - sudo apt update && sudo apt install -y calibre msttcorefonts - npm install gitbook-cli -g - npm install markdownlint-cli -g - npm install svgexport -g - gitbook -V - markdownlint -V script: - markdownlint docs - ./check_assets_size.py - ./check_unused_assets.py - gitbook install - gitbook build - gitbook pdf ./ _book/clover.pdf deploy: provider: pages local_dir: _book skip_cleanup: true token: ${GITHUB_OAUTH_TOKEN} keep_history: true target_branch: master repo: CopterExpress/clover.coex.tech fqdn: clover.coex.tech verbose: true on: branch: master - stage: Annotate name: Auto-generate changelog language: python python: 3.6 install: - pip install GitPython PyGithub script: - PYTHONUNBUFFERED=1 python ./gen_changelog.py - stage: Build name: Editorconfig-lint language: generic before_script: - wget https://github.com/okalachev/editorconfig-checker/releases/download/1.2.1-disable-spaces-amount/ec-linux-amd64 - chmod +x ec-linux-amd64 script: - ./ec-linux-amd64 -spaces-after-tabs -e "roslib.js|ros3d.js|eventemitter2.js|draw.cpp|BinUtils.swift|\.idea|apps/android/app|Assets.xcassets|test_parser_pass.txt|test_node_failure.txt|aruco_pose/vendor|\.stl|\.dxf" stages: - Build - Annotate # More info there # https://github.com/travis-ci/travis-ci/issues/6893 # https://docs.travis-ci.com/user/customizing-the-build/ # https://docs.travis-ci.com/user/deployment/releases # https://docs.travis-ci.com/user/environment-variables/