tqdm/.travis.yml

226 lines
5.8 KiB
YAML

language: python
env:
global:
- PIP_CACHE_DIR="$HOME/.cache/pip" # unify pip cache location for all platforms
# use cache for big builds like pandas (to minimise build time).
# If issues, clear cache
# https://docs.travis-ci.com/user/caching/#Clearing-Caches
cache:
pip: true
directories:
- $HOME/.cache/pip
before_cache:
- rm -f $HOME/.cache/pip/log/debug.log
notifications:
email: false
# branches: # remove travis double-check on pull requests in main repo
# only:
# - master
# - /^\d\.\d+$/
stages:
- test
- name: deploy
if: repo = tqdm/tqdm AND NOT type = pull_request
- name: development
if: false
jobs:
allow_failures:
- stage: development
include:
- stage: test
name: py2.6
python: 2.6
env: TOXENV=py26
dist: trusty
- name: py2.7
python: 2.7
env: TOXENV=py27
- name: py3.4
python: 3.4
env: TOXENV=py34
- name: py3.5
python: 3.5
env: TOXENV=py35
- name: py3.6
python: 3.6
env: TOXENV=py36
- name: py3.7
python: 3.7
env: TOXENV=py37
- name: py3.8
python: 3.8
env: TOXENV=py38
- name: tf-no-keras
python: 3.7
env: TOXENV=tf-no-keras
- name: pypy2.7
python: pypy2.7-7.3.1
env: TOXENV=pypy
- name: pypy3.5
python: pypy3.6-7.3.1
env: TOXENV=pypy3
- stage: development
name: py2.7-win
os: windows
language: shell
env: TOXENV=py27
before_install: &before_install_win
- |
if [[ "$TOXENV" == "py37" ]]; then
choco install python --version 3.7.4
export PATH="/c/Python37:/c/Python37/Scripts:$PATH"
else
choco install python2
export PATH="/c/Python27:/c/Python27/Scripts:$PATH"
fi
- python -m pip install -U pip setuptools wheel
install: &install_win
- python -m pip install tox
- python -m pip install .
script: &script_win
- python -m tox
- name: py3.7-win
os: windows
language: shell
env: TOXENV=py37
before_install: *before_install_win
install: *install_win
script: *script_win
- name: py2.7-osx
os: osx
language: shell
env: TOXENV=py27
- name: py3.7-osx
os: osx
osx_image: xcode11.2 # py3.7
language: shell
env: TOXENV=py37
- stage: deploy
name: PyPI and GitHub
python: 3.7
addons:
apt:
packages:
- pandoc
install:
script:
- pip install .[dev]
- make build
#- make submodules
#- cd wiki && make && cd ..
- openssl aes-256-cbc -K $encrypted_a6d6301302b7_key
-iv $encrypted_a6d6301302b7_iv -in .meta/.tqdm.gpg.enc -out .tqdm.gpg -d
- gpg --import .tqdm.gpg
- rm .tqdm.gpg
- git log --pretty='format:%d%n- %s%n%b---' $(git tag --sort=v:refname | tail -n2 | head -n1)..HEAD > _CHANGES.md
deploy:
- provider: script
script: twine upload -s -i tqdm@caspersci.uk.to dist/tqdm-*
skip_cleanup: true
on:
tags: true
- provider: releases
api_key: $GITHUB_TOKEN
file_glob: true
file: dist/tqdm-*.whl*
skip_cleanup: true
draft: true
name: tqdm $TRAVIS_TAG stable
edge: true
tag_name: $TRAVIS_TAG
target_commitish: $TRAVIS_COMMIT
release_notes_file: _CHANGES.md
on:
tags: true
- name: docker
python: 3.7
services:
- docker
install:
script:
- echo "$DOCKER_PWD" | docker login -u $DOCKER_USR --password-stdin
- echo "$GITHUB_TOKEN" | docker login docker.pkg.github.com -u $GITHUB_USR --password-stdin
- make -B docker
- |
if [[ -n "$TRAVIS_TAG" ]]; then
docker tag tqdm/tqdm:latest tqdm/tqdm:${TRAVIS_TAG#v}
docker tag tqdm/tqdm:latest docker.pkg.github.com/tqdm/tqdm/tqdm:${TRAVIS_TAG#v} ; fi
- docker tag tqdm/tqdm:latest tqdm/tqdm:devel
- docker tag tqdm/tqdm:latest docker.pkg.github.com/tqdm/tqdm/tqdm:latest
- docker tag tqdm/tqdm:latest docker.pkg.github.com/tqdm/tqdm/tqdm:devel
deploy:
- provider: script
script: docker push tqdm/tqdm:${TRAVIS_TAG#v}
on:
tags: true
- provider: script
script: 'docker push docker.pkg.github.com/tqdm/tqdm/tqdm:${TRAVIS_TAG#v} || :'
on:
tags: true
- provider: script
script: docker push tqdm/tqdm:latest
- provider: script
script: 'docker push docker.pkg.github.com/tqdm/tqdm/tqdm:latest || :'
- provider: script
script: docker push tqdm/tqdm:devel
on:
branch: devel
- provider: script
script: 'docker push docker.pkg.github.com/tqdm/tqdm/tqdm:devel || :'
on:
branch: devel
- name: snap
python: 3.7
addons:
snaps:
- name: snapcraft
channel: stable
confinement: classic
- name: review-tools
channel: stable
- name: lxd
channel: stable
env:
- SNAPCRAFT_IMAGE_INFO: |
'{"build_url": "$TRAVIS_JOB_WEB_URL"}'
- SNAPCRAFT_BUILD_ENVIRONMENT: lxd
- SNAPCRAFT_BUILD_INFO: 1 # https://snapcraft.io/blog/introducing-developer-notifications-for-snap-security-updates
before_install:
- sudo usermod --append --groups lxd $USER
- sudo /snap/bin/lxd.migrate -yes
- sudo /snap/bin/lxd waitready
- sudo /snap/bin/lxd init --auto
install:
- make snapcraft.yaml
script:
- sg lxd -c snapcraft
after_failure:
- sudo journalctl -u snapd
deploy:
- provider: snap
snap: tqdm*.snap
channel: stable
skip_cleanup: true
on:
tags: true
- provider: snap
snap: tqdm*.snap
channel: candidate
skip_cleanup: true
- provider: snap
snap: tqdm*.snap
channel: edge
skip_cleanup: true
on:
branch: devel
before_install:
# fix a crash with multiprocessing on Travis
# - sudo rm -rf /dev/shm
# - sudo ln -s /run/shm /dev/shm
- git fetch --tags
install:
- pip install tox
- pip install .
script:
- tox