# the original source of this file can be found in votca/votca repository # add changes there! # To update: # wget -O .travis.yml https://raw.githubusercontent.com/votca/votca/master/.travis.yml language: cpp sudo: required services: - docker git: quiet: true stages: - canary - test - deploy jobs: include: - stage: canary env: ENV=3 - stage: deploy if: repo = votca/votca AND type != pull_request env: ENV=1 env: matrix: - ENV=1 - ENV=2 - ENV=3 - ENV=4 - ENV=5 - ENV=6 - ENV=7 - ENV=8 - ENV=9 - ENV=10 - ENV=11 - ENV=12 - ENV=13 - ENV=14 - ENV=15 - ENV=16 - ENV=17 - ENV=18 - ENV=19 - ENV=20 before_script: - git checkout -b current_commit - cd ../../ - if [[ ${TRAVIS_REPO_SLUG} = */votca ]]; then if [[ ${TRAVIS_BRANCH} = next ]]; then git -C ${TRAVIS_REPO_SLUG} submodule foreach git checkout master; git -C ${TRAVIS_REPO_SLUG} submodule foreach git pull; fi; cp -vr ${TRAVIS_REPO_SLUG}/docker ${HOME}; mv -v ${TRAVIS_REPO_SLUG} $HOME/docker; else git clone -q --recursive https://github.com/votca/votca.git $HOME/docker/votca; if [[ ${TRAVIS_BRANCH} != master ]]; then git -C ${HOME}/docker/votca checkout -b ${TRAVIS_BRANCH} ${TRAVIS_TAG:-origin/${TRAVIS_BRANCH}} && git -C ${HOME}/docker/votca submodule update --recursive --init; fi; git -C ${HOME}/docker/votca/${TRAVIS_REPO_SLUG#*/} fetch ${PWD}/${TRAVIS_REPO_SLUG} current_commit; git -C ${HOME}/docker/votca/${TRAVIS_REPO_SLUG#*/} checkout -f FETCH_HEAD; cp -vr ${HOME}/docker/votca/docker/* ${HOME}/docker; if [[ -d ${TRAVIS_REPO_SLUG}/docker ]]; then cp -vr ${TRAVIS_REPO_SLUG}/docker/* ${HOME}/docker; fi; fi - source ${HOME}/docker/set_env.sh - test -n "${SKIP}" || cp -r $HOME/.ccache ${HOME}/docker/ccache - sed -i "1s/latest/${DISTRO:-latest}/" ${HOME}/docker/Dockerfile - if [[ ! ${SKIP} ]]; then travis_retry timeout 540 docker pull $(sed -n '1s/FROM //p' ${HOME}/docker/Dockerfile) | cat; fi script: - if [[ ! ${SKIP} ]]; then travis_retry docker build "${docker_opts[@]}" ${TRAVIS_TAG:+-t votca/votca:${TRAVIS_TAG}} -t votca/votca:latest -t votca/votca:${TRAVIS_BRANCH} ${HOME}/docker/ && rm -rf $HOME/.ccache && CON=$(docker run -d votca/votca:${TRAVIS_BRANCH} /bin/bash) && docker cp ${CON}:/home/votca/.ccache ${HOME}/; fi after_success: - if [[ ${TRAVIS_REPO_SLUG} != votca/votca || ${TRAVIS_BUILD_STAGE_NAME} != "Deploy" || ${SKIP} ]]; then travis_terminate 0; fi - shopt -s extglob && [[ ${TRAVIS_BRANCH} = @(master|stable|v1.*) ]] && DEPLOY=yes - if [[ ${TRAVIS_BRANCH} = master ]]; then DOCKER_TAG=latest; else DOCKER_TAG="${TRAVIS_BRANCH}"; fi - if [[ ${DOCKER_USERNAME} && ${DOCKER_PASSWORD} && ${TRAVIS_PULL_REQUEST} == false && ${DEPLOY} ]]; then docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"; docker push "${TRAVIS_REPO_SLUG}:${DOCKER_TAG}"; fi - if true; then git clone --depth=1 https://github.com/votca/doxygen.git "$HOME/devdoc"; cd $HOME/devdoc; rm -f *; git checkout -- CNAME; docker cp ${CON}:/home/votca/votca/build/share/doc/html . ; mv html/* .; rmdir html; docker cp ${CON}:/home/votca/votca/build/csg-manual/manual.pdf . ; docker cp ${CON}:/home/votca/votca/build/xtp/manual/xtp-manual.pdf . ; git add --all .; if [[ ${TRAVIS_BRANCH} = master && ${encrypted_7abbb71c3ba6_key} && ${encrypted_7abbb71c3ba6_iv} && ${TRAVIS_PULL_REQUEST} == false ]]; then git config --global user.name "Automatic Deployment (Travis CI)"; git config --global user.email "votca-commits@googlegroups.com"; git commit -m "Documentation Update"; openssl aes-256-cbc -K $encrypted_7abbb71c3ba6_key -iv $encrypted_7abbb71c3ba6_iv -in keys/deploy3.enc -out ~/.ssh/id_rsa -d; chmod 600 ~/.ssh/id_rsa; git push git@github.com:votca/doxygen.git gh-pages; else git status; git diff --cached --no-color | head -c 1k; fi; fi branches: only: - master - development - stable - next - /^v\d+\.\d+(\.\d+|_rc\d+)?$/ cache: - ccache compiler: - gcc - clang notifications: email: - votca-commits@googlegroups.com