dist: xenial # required for Python >= 3.7 os: linux language: python cache: pip: true directories: - $HOME/virtualenv git: depth: false autocrlf: false before_install: - date install: - pip install --upgrade poetry - poetry install - poetry run python --version script: - poetry run behave aliases: test_mac: &test_mac os: osx language: shell osx_image: xcode11.2 cache: directories: - $HOME/.pyenv/versions - $HOME/Library/Caches/pypoetry before_install: - eval "$(pyenv init -)" - pyenv install -s $JRNL_PYTHON_VERSION - pyenv global $JRNL_PYTHON_VERSION - pip install --upgrade pip - pip --version test_windows: &test_windows os: windows language: shell env: &env_windows PATH: /c/Python36:/c/Python36/Scripts:/c/Python37:/c/Python37/Scripts:/c/Python38:/c/Python38/Scripts:$PATH PYTHONIOENCODING: UTF-8 cache: directories: - /c/Python36 - /c/Python37 - /c/Python38 - /c/ProgramData/chocolatey/lib - /c/ProgramData/chocolatey/bin - /c/Users/travis/AppData/Local/pypoetry/Cache before_install: - choco install python --version $JRNL_PYTHON_VERSION - python -m pip install --upgrade pip - pip --version jobs: fast_finish: true allow_failures: - python: nightly include: - name: Misc Linting python: 3.8 script: - poetry --version - poetry check - black --version - black --check --diff . - pyflakes --version - pyflakes . # Python 3.6 Tests - name: Python 3.6 on Linux python: 3.6 - <<: *test_mac name: Python 3.6 on MacOS python: 3.6 env: JRNL_PYTHON_VERSION: 3.6.8 - <<: *test_windows name: Python 3.6 on Windows python: 3.6 env: <<: *env_windows JRNL_PYTHON_VERSION: 3.6.8 # Python 3.7 Tests - name: Python 3.7 on Linux python: 3.7 - <<: *test_mac name: Python 3.7 on MacOS python: 3.7 env: JRNL_PYTHON_VERSION: 3.7.5 - <<: *test_windows name: Python 3.7 on Windows python: 3.7 env: <<: *env_windows JRNL_PYTHON_VERSION: 3.7.5 # Python 3.8 Tests - name: Python 3.8 on Linux python: 3.8 - <<: *test_mac name: Python 3.8 on MacOS python: 3.8 env: JRNL_PYTHON_VERSION: 3.8.0 - <<: *test_windows name: Python 3.8 on Windows python: 3.8 env: <<: *env_windows JRNL_PYTHON_VERSION: 3.8.0 # ... and beyond! - name: Python nightly on Linux before_install: - sed -i 's/^python = ">=3\.6\.0.*"$/python = "*"/' pyproject.toml python: nightly # Specialty tests - name: Python 3.7 on Linux, not UTC python: 3.7 env: TZ: America/Edmonton # Changelog for Unreleased changes - stage: Update Changelog if: (tag IS present) OR (branch = develop AND type NOT IN (pull_request)) install: - echo 'Skipping install' script: - ./.build/generate_changelog.sh - stage: Deploy if: tag IS present before_deploy: - poetry version "$TRAVIS_TAG" - echo __version__ = \"$TRAVIS_TAG\" > jrnl/__version__.py - poetry build script: - echo "Deployment starting..." deploy: - provider: script script: poetry publish skip_cleanup: true on: branch: master tags: true after_deploy: - git config --global user.email "jrnl.bot@gmail.com" - git config --global user.name "Jrnl Bot" - git checkout master - git add pyproject.toml jrnl/__version__.py - git commit -m "Incrementing version to ${TRAVIS_TAG} [ci skip]" - git push https://${GITHUB_TOKEN}@github.com/jrnl-org/jrnl.git master