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" - IMAGE_VERSION=${TRAVIS_TAG:-${TRAVIS_COMMIT:0:7}} - IMAGE_NAME="$(basename -s '.git' ${TARGET_REPO})_${IMAGE_VERSION}.img" git: depth: 1 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 after_success: - sudo chmod -R 777 * - cd images && zip -9 ${IMAGE_NAME}.zip ${IMAGE_NAME} && stat --printf="Compressed image size:%s\n" ${IMAGE_NAME}.zip 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" 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 || echo "error building the 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: 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|blockly/|clover_blocks/programs/|highlight/|python.js|Assets.xcassets|test_parser_pass.txt|test_node_failure.txt|aruco_pose/vendor|\.stl|\.dxf|\.dae" stages: - Build # 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/