lbry-sdk/.travis.yml

147 lines
4.5 KiB
YAML
Raw Normal View History

sudo: required
2018-07-22 01:32:05 +02:00
dist: xenial
2017-02-15 18:10:40 +01:00
language: python
2018-07-29 06:24:38 +02:00
python: "3.7"
2017-02-15 18:10:40 +01:00
2018-07-22 01:32:05 +02:00
jobs:
include:
2017-10-25 18:26:04 +02:00
2018-07-27 01:18:48 +02:00
- stage: code quality
2019-06-20 21:26:54 +02:00
name: "pylint & mypy"
2018-07-27 01:18:48 +02:00
install:
2019-06-20 21:26:54 +02:00
- make install
script: make lint
2018-07-27 01:18:48 +02:00
- stage: test
2019-06-20 21:26:54 +02:00
name: "LBRY Unit Tests"
2018-07-27 01:18:48 +02:00
install:
2019-06-20 21:26:54 +02:00
- make install
script:
2019-06-21 03:48:16 +02:00
- cd lbry && HOME=/tmp coverage run -p --source=lbry -m unittest discover -vv tests.unit
2018-07-27 23:56:13 +02:00
after_success:
2019-06-20 22:06:21 +02:00
- coverage combine lbry/
- bash <(curl -s https://codecov.io/bash)
2019-06-20 22:19:19 +02:00
- name: "LBRY Integration Tests"
2019-01-24 00:04:16 +01:00
install:
2019-06-20 22:06:21 +02:00
- pip install coverage tox-travis
2019-06-20 22:19:19 +02:00
script: cd lbry && tox
2019-06-20 21:26:54 +02:00
after_success:
2019-06-20 22:19:19 +02:00
- coverage combine lbry
2019-06-20 22:06:21 +02:00
- bash <(curl -s https://codecov.io/bash)
2019-06-20 22:19:19 +02:00
- &torba-tests
name: "Torba Unit Tests"
env: TESTTYPE=unit
2019-06-20 21:26:54 +02:00
install:
2019-06-20 22:06:21 +02:00
- pip install coverage tox-travis
2019-06-20 22:19:19 +02:00
script: cd torba && tox
2019-01-24 00:04:16 +01:00
after_success:
2019-06-20 22:19:19 +02:00
- coverage combine torba/tests
2019-06-20 22:06:21 +02:00
- bash <(curl -s https://codecov.io/bash)
2019-01-24 00:04:16 +01:00
2019-06-20 22:19:19 +02:00
- <<: *torba-tests
name: "Torba Integration Tests"
env: TESTTYPE=integration
2019-04-06 22:29:59 +02:00
- name: "Run Examples"
install:
2019-06-20 21:26:54 +02:00
- make install
2019-04-06 22:29:59 +02:00
script:
2019-06-21 03:48:16 +02:00
- cd lbry && HOME=/tmp coverage run -p --source=lbry scripts/generate_json_api.py
2019-04-06 22:29:59 +02:00
after_success:
2019-06-20 22:06:21 +02:00
- coverage combine lbry
- bash <(curl -s https://codecov.io/bash)
2019-04-06 22:29:59 +02:00
2018-07-29 06:16:57 +02:00
- &build
2019-06-25 03:52:00 +02:00
stage: build
2018-07-29 06:16:57 +02:00
name: "Linux"
env: OS=linux
2018-07-27 00:08:26 +02:00
install:
2019-06-25 05:03:39 +02:00
- pip install pyinstaller awscli
2019-06-24 18:35:37 +02:00
- cd torba && pip install -e . && cd ..
2019-06-20 23:51:56 +02:00
- cd lbry
2019-06-24 18:35:37 +02:00
- python scripts/set_build.py
- pip install -e .
script:
2019-06-21 03:48:16 +02:00
- pyinstaller -F -n lbrynet lbry/extras/cli.py
2019-06-24 18:35:37 +02:00
- cd dist
- chmod +x lbrynet
- zip -j lbrynet-${OS}.zip lbrynet
2019-06-25 20:21:14 +02:00
- shasum -a 256 -b lbrynet-${OS}.zip
- ./lbrynet --version
2019-06-24 18:35:37 +02:00
after_success:
- aws configure set aws_access_key_id $ARTIFACTS_KEY
- aws configure set aws_secret_access_key $ARTIFACTS_SECRET
- aws configure set region us-east-1
2019-06-25 04:23:28 +02:00
- export S3_PATH="daemon/build-${TRAVIS_BUILD_NUMBER}_commit-${TRAVIS_COMMIT:0:7}_branch-${TRAVIS_BRANCH}$([ ! -z ${TRAVIS_TAG} ] && echo _tag-${TRAVIS_TAG})"
- aws s3 cp lbrynet-${OS}.zip s3://build.lbry.io/${S3_PATH}/lbrynet-${OS}.zip
deploy:
provider: releases
api_key: $GITHUB_OAUTH_TOKEN
2019-06-25 04:23:28 +02:00
file: lbrynet-${OS}.zip
skip_cleanup: true
overwrite: true
draft: true
2018-12-12 06:10:39 +01:00
on:
tags: true
2018-07-29 06:16:57 +02:00
- <<: *build
name: "Mac"
os: osx
osx_image: xcode8.3
2019-06-24 18:35:37 +02:00
language: shell
2018-07-29 06:16:57 +02:00
env: OS=mac
before_install:
- brew upgrade python || true
2019-06-24 18:35:37 +02:00
- pip3 install --user --upgrade pip virtualenv
- /Users/travis/Library/Python/3.7/bin/virtualenv $HOME/venv
- source $HOME/venv/bin/activate
2019-06-25 05:03:39 +02:00
before_cache:
- brew cleanup
2019-06-24 18:35:37 +02:00
- <<: *build
name: "Windows"
os: windows
language: shell
env:
- OS=windows
- PATH=/C/Users/travis/AppData/Roaming/Python/Python37/Scripts:/c/Python37:/c/Python37/Scripts:/C/Windows/System32/downlevel:$PATH
before_install:
- choco install python --x86
- pip install --user --upgrade pip virtualenv
- virtualenv $HOME/venv
- source $HOME/venv/Scripts/activate
- pip install pywin32
script:
- pyinstaller --additional-hooks-dir=scripts/. --icon=icons/lbry256.ico -F -n lbrynet lbry/extras/cli.py
- cd dist
- 7z a -tzip lbrynet-windows.zip lbrynet.exe
2019-06-25 20:21:14 +02:00
- sha256sum -b lbrynet-windows.zip
- ./lbrynet.exe --version
2019-06-20 23:51:56 +02:00
- if: tag IS present
stage: build
name: "Wallet Server Docker Image - Tagged Release"
script:
- set -e
- echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin
2019-06-20 23:51:56 +02:00
- travis_retry docker build -t lbry/wallet-server:$TRAVIS_TAG -f lbry/scripts/Dockerfile.wallet_server .
2019-06-21 01:49:09 +02:00
- docker push lbry/wallet-server:$TRAVIS_TAG
2019-06-25 04:23:28 +02:00
2019-06-21 01:49:09 +02:00
- if: tag IS blank AND branch = master AND NOT type IN (pull_request)
stage: build
name: "Wallet Server Docker Image - Master"
script:
- set -e
- echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin
2019-06-20 23:51:56 +02:00
- travis_retry docker build -t lbry/wallet-server:master -f lbry/scripts/Dockerfile.wallet_server .
2019-06-21 01:49:09 +02:00
- docker push lbry/wallet-server:master
2018-07-07 00:31:35 +02:00
cache:
directories:
2019-06-25 04:23:28 +02:00
- $HOME/venv
2018-07-07 00:31:35 +02:00
- $HOME/.cache/pip
- $HOME/Library/Caches/pip
2019-06-25 05:03:39 +02:00
- $HOME/Library/Caches/Homebrew
2018-07-07 00:31:35 +02:00
- $TRAVIS_BUILD_DIR/.tox