You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

230 lines
6.3 KiB

task:
container:
image: $ELECTRUM_IMAGE
cpu: 1
memory: 1G
matrix:
- name: Tox Python $ELECTRUM_PYTHON_VERSION
env:
ELECTRUM_IMAGE: python:$ELECTRUM_PYTHON_VERSION
TOXENV: py3
ELECTRUM_PYTHON_NAME: python3
matrix:
- env:
ELECTRUM_PYTHON_VERSION: 3.6
- env:
ELECTRUM_PYTHON_VERSION: 3.7
- env:
ELECTRUM_PYTHON_VERSION: 3.8
- env:
ELECTRUM_PYTHON_VERSION: 3.9
- env:
ELECTRUM_PYTHON_VERSION: 3
- env:
ELECTRUM_PYTHON_VERSION: rc
- name: Tox PyPy
allow_failures: true
env:
ELECTRUM_IMAGE: pypy:3
TOXENV: pypy3
ELECTRUM_PYTHON_NAME: pypy3
pip_cache:
folder: ~/.cache/pip
fingerprint_script: echo $ELECTRUM_IMAGE && cat $ELECTRUM_REQUIREMENTS
populate_script: mkdir -p ~/.cache/pip
electrum_cache:
folder: /tmp/electrum-build
populate_script: mkdir -p /tmp/electrum-build
version_script:
- $ELECTRUM_PYTHON_NAME --version
tag_script:
- git tag
install_script:
- apt-get update
- apt-get -y install libsecp256k1-0
- pip install -r $ELECTRUM_REQUIREMENTS
tox_script:
- tox
coveralls_script:
- coveralls
env:
ELECTRUM_REQUIREMENTS: contrib/requirements/requirements-travis.txt
# following CI_* env vars are set up for coveralls
CI_NAME: "CirrusCI"
CI_BUILD_NUMBER: $CIRRUS_BUILD_ID
CI_JOB_ID: $CIRRUS_TASK_ID
CI_BUILD_URL: "https://cirrus-ci.com/task/$CIRRUS_TASK_ID"
CI_BRANCH: $CIRRUS_BRANCH
CI_PULL_REQUEST: $CIRRUS_PR
# in addition, COVERALLS_REPO_TOKEN is set as an "override" in https://cirrus-ci.com/settings/...
task:
name: Locale
container:
image: $ELECTRUM_IMAGE
cpu: 1
memory: 1G
pip_cache:
folder: ~/.cache/pip
fingerprint_script: echo Locale && echo $ELECTRUM_IMAGE && cat $ELECTRUM_REQUIREMENTS
populate_script: mkdir -p ~/.cache/pip
electrum_cache:
folder: /tmp/electrum-build
populate_script: mkdir -p /tmp/electrum-build
install_script:
- apt-get update
- apt-get -y install libsecp256k1-0 gettext
- pip install -r $ELECTRUM_REQUIREMENTS
- pip install requests
locale_script:
- contrib/push_locale
env:
ELECTRUM_IMAGE: python:3.7
ELECTRUM_REQUIREMENTS: contrib/requirements/requirements-travis.txt
# in addition, crowdin_api_key is set as an "override" in https://cirrus-ci.com/settings/...
depends_on:
- Tox Python 3.9
only_if: $CIRRUS_BRANCH == 'master'
task:
name: Regtest functional tests
container:
image: $ELECTRUM_IMAGE
cpu: 1
memory: 1G
pip_cache:
folder: ~/.cache/pip
fingerprint_script: echo Regtest && echo $ELECTRUM_IMAGE && cat $ELECTRUM_REQUIREMENTS
populate_script: mkdir -p ~/.cache/pip
electrum_cache:
folder: /tmp/electrum-build
populate_script: mkdir -p /tmp/electrum-build
bitcoind_cache:
folder: /tmp/bitcoind
populate_script: mkdir -p /tmp/bitcoind
install_script:
- apt-get update
- apt-get -y install libsecp256k1-0 curl jq bc
- pip3 install .[tests]
- pip3 install electrumx
- "BITCOIND_VERSION=$(curl https://bitcoincore.org/en/download/ | grep -E -i --only-matching 'Latest version: [0-9\\.]+' | grep -E --only-matching '[0-9\\.]+')"
- BITCOIND_FILENAME=bitcoin-$BITCOIND_VERSION-x86_64-linux-gnu.tar.gz
- BITCOIND_PATH=/tmp/bitcoind/$BITCOIND_FILENAME
- BITCOIND_URL=https://bitcoincore.org/bin/bitcoin-core-$BITCOIND_VERSION/$BITCOIND_FILENAME
- tar -xaf $BITCOIND_PATH || (rm -f /tmp/bitcoind/* && curl --output $BITCOIND_PATH $BITCOIND_URL && tar -xaf $BITCOIND_PATH)
- cp -a bitcoin-$BITCOIND_VERSION/* /usr/
bitcoind_service_background_script:
- electrum/tests/regtest/run_bitcoind.sh
electrumx_service_background_script:
- electrum/tests/regtest/run_electrumx.sh
regtest_script:
- sleep 10s
- python3 -m unittest electrum/tests/regtest.py
env:
ELECTRUM_IMAGE: python:3.7
ELECTRUM_REQUIREMENTS: contrib/requirements/requirements-travis.txt
# ElectrumX exits with an error without this:
ALLOW_ROOT: 1
task:
container:
image: $ELECTRUM_IMAGE
cpu: 1
memory: 1G
pip_cache:
folder: ~/.cache/pip
fingerprint_script: echo Flake8 && echo $ELECTRUM_IMAGE && cat $ELECTRUM_REQUIREMENTS
populate_script: mkdir -p ~/.cache/pip
electrum_cache:
folder: /tmp/electrum-build
populate_script: mkdir -p /tmp/electrum-build
install_script:
- pip install flake8
flake8_script:
- flake8 . --count --select=$ELECTRUM_LINTERS --show-source --statistics
env:
ELECTRUM_IMAGE: python:3.7
ELECTRUM_REQUIREMENTS: contrib/requirements/requirements-travis.txt
matrix:
- name: Flake8 Mandatory
env:
ELECTRUM_LINTERS: E9,F63,F7,F82
- name: Flake8 Non-Mandatory
env:
ELECTRUM_LINTERS: E,F,W,C90
allow_failures: true
task:
name: Windows build
container:
dockerfile: contrib/build-wine/Dockerfile
cpu: 1
memory: 2G
build_script:
- cd contrib/build-wine
- ./make_win.sh
binaries_artifacts:
path: "contrib/build-wine/dist/*"
env:
CIRRUS_WORKING_DIR: /opt/wine64/drive_c/electrum
task:
name: Android build
container:
dockerfile: contrib/android/Dockerfile
cpu: 2
memory: 2G
build_script:
- ./contrib/android/make_apk
binaries_artifacts:
path: "dist/*"
task:
name: MacOS build
macos_instance:
image: catalina-xcode-11.3.1
env:
TARGET_OS: macOS
install_script:
- git fetch --all --tags
build_script:
- ./contrib/osx/make_osx
sum_script:
- ls -lah dist
- shasum -a 256 dist/*.dmg
binaries_artifacts:
path: "dist/*"
task:
name: AppImage build
container:
dockerfile: contrib/build-linux/appimage/Dockerfile
cpu: 2
memory: 1G
build_script:
- ./contrib/build-linux/appimage/make_appimage.sh
binaries_artifacts:
path: "dist/*"
task:
name: tarball build
container:
dockerfile: contrib/build-linux/sdist/Dockerfile
cpu: 1
memory: 1G
build_script:
- ./contrib/build-linux/sdist/make_sdist.sh
binaries_artifacts:
path: "dist/*"
task:
name: Submodules
container:
image: python:3.7
cpu: 1
memory: 1G
fetch_script:
- git fetch --all --tags
check_script:
- ./contrib/deterministic-build/check_submodules.sh
only_if: $CIRRUS_TAG != ''