mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
By the time we get to the deployment step, we've already run these tests dozens of times. We don't need to run them yet again at deploy time.
150 lines
3.5 KiB
YAML
150 lines
3.5 KiB
YAML
dist: xenial # required for Python >= 3.7
|
|
os: linux
|
|
language: python
|
|
|
|
cache:
|
|
- pip
|
|
|
|
git:
|
|
depth: false
|
|
autocrlf: false
|
|
|
|
before_install:
|
|
- date
|
|
|
|
install:
|
|
- pip install 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
|
|
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
|
|
cache:
|
|
directories:
|
|
- /c/Python36
|
|
- /c/Python37
|
|
- /c/Python38
|
|
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: Lint, via Black
|
|
python: 3.8
|
|
script:
|
|
- black --version
|
|
- black --check . --verbose --diff
|
|
|
|
# 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:
|
|
- JRNL_PYTHON_VERSION=3.6.8
|
|
- PATH=/c/Python36:/c/Python36/Scripts:$PATH
|
|
- PYTHONIOENCODING=UTF-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:
|
|
- JRNL_PYTHON_VERSION=3.7.5
|
|
- PATH=/c/Python37:/c/Python37/Scripts:$PATH
|
|
- PYTHONIOENCODING=UTF-8
|
|
|
|
# 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:
|
|
- JRNL_PYTHON_VERSION=3.8.0
|
|
- PATH=/c/Python38:/c/Python38/Scripts:$PATH
|
|
- PYTHONIOENCODING=UTF-8
|
|
|
|
# ... and beyond!
|
|
- name: Python nightly on Linux
|
|
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
|
|
- git commit -m "Incrementing version to ${TRAVIS_TAG} [ci skip]"
|
|
- git push https://${GITHUB_TOKEN}@github.com/jrnl-org/jrnl.git master
|
|
|