mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
* First stab at adding Python 3.9 dev Travis builds * Dynamically replace Python max version for Python 3.9 beta builds * Fix allow_failures (3.9-dev, not 3.9) and fix Windows find-and-replace command to allow 3.9 * Fix allow_failures to allow all three Python 3.9 builds to fail * Use platform-independent Python script to allow all Python versions for 3.9 builds * Format changes and changing before_install to script for 3.9 builds * Install toml module to make it possible to run version-changing script before install * Properly populate before_install step with Mac and Windows Python 3.9, and remove extraneous unused python key * Add refreshenv to get python3 path included in WIndows * Ensure MacOS pyenv is up to date and attempt to reference Windows python3 directly * Use bash-friendly paths in Windows and check to see exactly what the Python 3.9 executable is * Confirm Python version in Windows and attempt to get pip a different way * Fiddling with Windows python references * Remove Python3.6 references and check for Python directory in root directory * Add Python 3.9 path to Windows build * Remove pip steps that should be unnecessary * Add upgrade pip to Windows Python 3.9 build * Attempt to resolve "access denied" error when upgrading pip on Windows * Use allow_all_python_version TOML script in nightly build instead of sed
175 lines
4.2 KiB
YAML
175 lines
4.2 KiB
YAML
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 config virtualenvs.in-project true
|
|
- poetry config --list
|
|
- poetry install
|
|
- poetry run python --version
|
|
|
|
script:
|
|
- poetry run pytest
|
|
- 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/Python37:/c/Python37/Scripts:/c/Python38:/c/Python38/Scripts:/c/Python39:/c/Python39/Scripts:$PATH
|
|
PYTHONIOENCODING: UTF-8
|
|
cache:
|
|
directories:
|
|
- /c/Python37
|
|
- /c/Python38
|
|
- /c/Python39
|
|
- /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:
|
|
- name: Python 3.9 on Windows
|
|
- name: Python 3.9 on Linux
|
|
- name: Python 3.9 on MacOS
|
|
- python: nightly
|
|
|
|
include:
|
|
- name: Misc Linting
|
|
python: 3.8
|
|
script:
|
|
- poetry --version
|
|
- poetry check
|
|
- black --version
|
|
- black --check --diff .
|
|
- pyflakes --version
|
|
- pyflakes .
|
|
|
|
# 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.7
|
|
- <<: *test_windows
|
|
name: Python 3.7 on Windows
|
|
python: 3.7
|
|
env:
|
|
<<: *env_windows
|
|
JRNL_PYTHON_VERSION: 3.7.7
|
|
|
|
# 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.2
|
|
- <<: *test_windows
|
|
name: Python 3.8 on Windows
|
|
python: 3.8
|
|
env:
|
|
<<: *env_windows
|
|
JRNL_PYTHON_VERSION: 3.8.2
|
|
|
|
# Python 3.9 Dev Tests
|
|
- name: Python 3.9 on Linux
|
|
before_install:
|
|
- pip install toml
|
|
- python .build/allow_all_python_version.py
|
|
python: 3.9-dev
|
|
- <<: *test_mac
|
|
name: Python 3.9 on MacOS
|
|
before_install:
|
|
- brew upgrade pyenv
|
|
- eval "$(pyenv init -)"
|
|
- pyenv install -s $JRNL_PYTHON_VERSION
|
|
- pyenv global $JRNL_PYTHON_VERSION
|
|
- pip install --upgrade pip
|
|
- pip --version
|
|
- pip install toml
|
|
- python .build/allow_all_python_version.py
|
|
env:
|
|
JRNL_PYTHON_VERSION: 3.9.0b5
|
|
- <<: *test_windows
|
|
name: Python 3.9 on Windows
|
|
before_install:
|
|
- choco install python --pre
|
|
- python --version
|
|
- python -m pip install --upgrade pip
|
|
- pip --version
|
|
- pip install toml
|
|
- python .build/allow_all_python_version.py
|
|
env:
|
|
<<: *env_windows
|
|
JRNL_PYTHON_VERSION: 3.9.0b5
|
|
|
|
# ... and beyond!
|
|
- name: Python nightly on Linux
|
|
before_install:
|
|
- python .build/allow_all_python_version.py
|
|
python: nightly
|
|
|
|
# Specialty tests
|
|
- name: Python 3.7 on Linux, not UTC
|
|
python: 3.7
|
|
env:
|
|
TZ: America/Edmonton
|
|
|
|
- stage: Deploy
|
|
if: tag IS present
|
|
before_deploy:
|
|
- poetry build
|
|
script:
|
|
- echo "Deployment starting..."
|
|
deploy:
|
|
- provider: script
|
|
script: poetry publish
|
|
skip_cleanup: true
|
|
on:
|
|
all_branches: true
|
|
|
|
# Changelog for Unreleased changes
|
|
- stage: Update Changelog
|
|
if: (tag IS present) OR (branch = develop AND type NOT IN (pull_request))
|
|
install:
|
|
- echo 'Skipping installation step'
|
|
script:
|
|
- ./.build/generate_changelog.sh
|
|
|