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.
pyrocko/.drone.yml

723 lines
14 KiB

kind: pipeline
type: docker
name: flake8
steps:
- name: flake8
image: pyrocko-nest
pull: never
commands:
- flake8 src test examples setup.py
---
kind: pipeline
type: docker
name: docs
steps:
- name: build
image: pyrocko-docs
pull: never
commands:
- python3 setup.py install && cd doc && make html
- python3 -m pyrocko.print_version short > build/html/version.txt
- name: stage
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh doc/build/html/ ${DRONE_COMMIT}/docs/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
- name: stage-www
image: pyrocko-util
pull: never
when:
branch:
- release
- deploy-docs
commands:
- maintenance/drone-rsync.sh doc/build/html/ ${DRONE_COMMIT}/docs/
environment:
RSYNC_HOST:
from_secret: www-host
RSYNC_USER:
from_secret: www-user
RSYNC_KEY:
from_secret: rsync-key
- name: deploy-www
image: pyrocko-util
pull: never
when:
branch:
- release
- deploy-docs
commands:
- maintenance/drone-deploy-docs.sh
environment:
WWW_HOST:
from_secret: www-host
WWW_USER:
from_secret: www-user
WWW_KEY:
from_secret: www-key
---
kind: pipeline
type: docker
name: pip
trigger:
branch:
- release
- candidate
- pip
steps:
- name: build-manylinux1_x86_64
image: quay.io/pypa/manylinux1_x86_64
commands:
- maintenance/pip/build_wheels.sh
environment:
PLAT: manylinux1_x86_64
- name: test-pure-pip-manylinux1_x86_64
image: pyrocko-util
pull: never
when:
branch:
exclude:
- release
commands:
- pip3 install -f wheels pyrocko --no-index --no-deps
- pip3 install -f wheels pyrocko
- pip3 install --only-binary=PyQt5 PyQt5 jinja2 nose
- xvfb-run -s '-screen 0 640x480x24' python3 -m nose test
- name: test-mixed-pip-manylinux1_x86_64
image: pyrocko-fat-nest
pull: never
when:
branch:
exclude:
- release
commands:
- ln -sf /pyrocko-test-data test/data
- pip3 install -f wheels --no-index --no-deps pyrocko
- xvfb-run -s '-screen 0 640x480x24' python3 -m nose test
- name: sdist-pip
image: pyrocko-nest
pull: never
commands:
- pip3 install -f wheels --no-index --no-deps pyrocko
- python setup.py sdist
- name: stage-manylinux1_x86_64
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh wheels/ ${DRONE_COMMIT}/wheels/
- maintenance/drone-rsync.sh dist/ ${DRONE_COMMIT}/dist/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
- name: upload-testing-manylinux1_x86_64
image: pyrocko-nest
pull: never
when:
branch:
- candidate
- pip
commands:
- maintenance/pip/upload_wheels.sh testing
environment:
PYPI_USERNAME:
from_secret: pypi-username
PYPI_PASSWORD:
from_secret: pypi-password
- name: upload-manylinux1_x86_64
image: pyrocko-nest
pull: never
when:
branch:
- release
commands:
- maintenance/pip/upload_wheels.sh live
environment:
PYPI_USERNAME:
from_secret: pypi-username
PYPI_PASSWORD:
from_secret: pypi-password
---
kind: pipeline
type: docker
name: tests-base
trigger:
branch:
exclude:
- conda
- pip
- release
steps:
- name: tests-base
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- python3 -m coverage run --parallel-mode -m nose test.base
- for x in .coverage.* ; do mv $x $${x#.} ; done
- name: tests-base-hptime
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- python3 -m coverage run --parallel-mode -m nose test.base
- for x in .coverage.* ; do mv $x $${x#.} ; done
environment:
PYROCKO_USE_HIGH_PRECISION_TIME: 1
when:
branch:
- hptime
- candidate
- name: stage
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh coverage.* ${DRONE_COMMIT}/coverage/data/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
---
kind: pipeline
type: docker
name: tests-gf
trigger:
branch:
exclude:
- conda
- pip
- release
steps:
- name: tests-gf
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- python3 -m coverage run --parallel-mode -m nose test.gf
- for x in .coverage.* ; do mv $x $${x#.} ; done
- name: tests-gf-hptime
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- python3 -m coverage run --parallel-mode -m nose test.gf
- for x in .coverage.* ; do mv $x $${x#.} ; done
environment:
PYROCKO_USE_HIGH_PRECISION_TIME: 1
when:
branch:
- hptime
- candidate
- name: stage
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh coverage.* ${DRONE_COMMIT}/coverage/data/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
---
kind: pipeline
type: docker
name: tests-examples
trigger:
branch:
exclude:
- conda
- pip
- release
steps:
- name: tests-examples
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- python3 -m coverage run --parallel-mode -m nose test.examples
- for x in .coverage.* ; do mv $x $${x#.} ; done
- name: tests-examples-hptime
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- python3 -m coverage run --parallel-mode -m nose test.examples
- for x in .coverage.* ; do mv $x $${x#.} ; done
environment:
PYROCKO_USE_HIGH_PRECISION_TIME: 1
when:
branch:
- hptime
- candidate
- name: stage
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh coverage.* ${DRONE_COMMIT}/coverage/data/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
---
kind: pipeline
type: docker
name: tests-gui
trigger:
branch:
exclude:
- conda
- pip
- release
steps:
- name: tests-gui
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install obspy
- xvfb-run -s '-screen 0 640x480x24' python3 -m coverage run --parallel-mode -m nose test.gui test.base.test_obspy_compat:ObsPyCompatTestCase.test_obspy_fiddle test.base.test_obspy_compat:ObsPyCompatTestCase.test_obspy_snuffle
- for x in .coverage.* ; do mv $x $${x#.} ; done
- name: tests-gui-hptime
image: pyrocko-fat-nest
pull: never
commands:
- ln -sf /pyrocko-test-data test/data
- python3 setup.py install -f
- pip3 install obspy
- xvfb-run -s '-screen 0 640x480x24' python3 -m coverage run --parallel-mode -m nose test.gui test.base.test_obspy_compat:ObsPyCompatTestCase.test_obspy_fiddle test.base.test_obspy_compat:ObsPyCompatTestCase.test_obspy_snuffle
- for x in .coverage.* ; do mv $x $${x#.} ; done
environment:
PYROCKO_USE_HIGH_PRECISION_TIME: 1
when:
branch:
- hptime
- candidate
- name: stage
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh coverage.* ${DRONE_COMMIT}/coverage/data/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
---
kind: pipeline
type: exec
name: tests-windows
trigger:
branch:
exclude:
- conda
- pip
- release
platform:
os: windows
steps:
- name: install
commands:
- xcopy C:\\vagrant\\test-data test\\data\\ /E /Y
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Users\\IEUser\\miniconda3\\Lib\\site-packages\\pyrocko
- python setup.py install
- name: tests-base
commands:
- python maintenance/run_tests_windows.py test.base
depends_on:
- install
- name: tests-gf
commands:
- python maintenance/run_tests_windows.py test.gf
depends_on:
- install
- name: tests-examples
commands:
- python maintenance/run_tests_windows.py test.examples
depends_on:
- install
- name: tests-gui
commands:
- python maintenance/run_tests_windows.py test.gui
depends_on:
- install
- name: finalize
commands: []
depends_on:
- tests-base
- tests-gf
- tests-examples
- tests-gui
---
kind: pipeline
type: exec
name: pip-windows
trigger:
branch:
- release
- candidate
- pip
- pip-windows-release
platform:
os: windows
steps:
- name: build
commands:
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Users\\IEUser\\miniconda3\\Lib\\site-packages\\pyrocko
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Users\\IEUser\\miniconda3\\envs\\py36
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Users\\IEUser\\miniconda3\\envs\\py37
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Users\\IEUser\\miniconda3\\envs\\py38
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Users\\IEUser\\miniconda3\\envs\\py39
- conda create -y -n py36 python=3.6 m2-tar m2-gzip m2-patch setuptools numpy=1.14
- conda run -n py36 python setup.py install
- conda run -n py36 python setup.py bdist_wheel
- conda create -y -n py37 python=3.7 m2-tar m2-gzip m2-patch setuptools numpy=1.14
- conda run -n py37 python setup.py install
- conda run -n py37 python setup.py bdist_wheel
- conda create -y -n py38 python=3.8 m2-tar m2-gzip m2-patch setuptools numpy=1.14
- conda run -n py38 python setup.py install
- conda run -n py38 python setup.py bdist_wheel
- conda create -y -n py39 python=3.9 m2-tar m2-gzip m2-patch setuptools numpy=1.16
- conda run -n py39 python setup.py install
- conda run -n py39 python setup.py bdist_wheel
- name: upload-testing
when:
branch:
- candidate
- pip
commands:
- pip install twine
- bash maintenance/pip/upload_wheels_windows.sh testing
environment:
PYPI_USERNAME:
from_secret: pypi-username
PYPI_PASSWORD:
from_secret: pypi-password
- name: upload
when:
branch:
- release
- pip-windows-release
commands:
- pip install twine
- bash maintenance/pip/upload_wheels_windows.sh live
environment:
PYPI_USERNAME:
from_secret: pypi-username
PYPI_PASSWORD:
from_secret: pypi-password
---
kind: pipeline
type: docker
name: coverage
depends_on:
- tests-base
- tests-gf
- tests-examples
- tests-gui
trigger:
branch:
exclude:
- conda
- pip
- release
steps:
- name: build
image: pyrocko-nest
pull: never
commands:
- python3 setup.py install -f
- pip3 install utm
- pip3 install git+https://github.com/pyrocko/kite
- pip3 install obspy
- wget -r -nH --cut-dirs=2 --no-parent --reject="index.html*" https://data.pyrocko.org/builds/${DRONE_COMMIT}/coverage/data/
- python3 -m coverage combine coverage/data/coverage.*
- python3 -m coverage html
- name: stage
image: pyrocko-util
pull: never
commands:
- maintenance/drone-rsync.sh htmlcov/ ${DRONE_COMMIT}/coverage/
environment:
RSYNC_HOST:
from_secret: rsync-host
RSYNC_USER:
from_secret: rsync-user
RSYNC_KEY:
from_secret: rsync-key
---
kind: pipeline
type: exec
name: conda-packages-linux
trigger:
branch:
- candidate
- release
- conda
platform:
os: linux
arch: amd64
steps:
- name: build-test
commands:
- ln -sf /data/local/home/pyrocko-testing/.vagrant.d $HOME/.vagrant.d
- cd maintenance/conda/boxes/centos-7
- ./outside.sh dryrun
when:
branch:
- candidate
- conda
- name: build-test-upload
commands:
- ln -sf /data/local/home/pyrocko-testing/.vagrant.d $HOME/.vagrant.d
- cd maintenance/conda/boxes/centos-7
- ./outside.sh upload
environment:
CONDA_USERNAME:
from_secret: conda-username
CONDA_PASSWORD:
from_secret: conda-password
when:
branch:
- release
---
kind: pipeline
type: exec
name: conda-packages-osx
trigger:
branch:
- candidate
- release
- conda
platform:
os: linux
arch: amd64
steps:
- name: build-test
commands:
- ln -sf /data/local/home/pyrocko-testing/.vagrant.d $HOME/.vagrant.d
- cd maintenance/conda/boxes/osx
- ./outside.sh dryrun
when:
branch:
- candidate
- conda
- name: build-test-upload
commands:
- ln -sf /data/local/home/pyrocko-testing/.vagrant.d $HOME/.vagrant.d
- cd maintenance/conda/boxes/osx
- ./outside.sh upload
environment:
CONDA_USERNAME:
from_secret: conda-username
CONDA_PASSWORD:
from_secret: conda-password
when:
branch:
- release
---
kind: pipeline
type: exec
name: conda-packages-windows
trigger:
branch:
- candidate
- release
- conda
platform:
os: windows
steps:
- name: build-test
commands:
- cd maintenance\\conda\\
- conda run -n base bash build_packages_windows.sh dryrun
when:
branch:
- candidate
- conda
- name: build-test-upload
commands:
- cd maintenance\\conda\\
- conda run -n base bash build_packages_windows.sh upload
environment:
CONDA_USERNAME:
from_secret: conda-username
CONDA_PASSWORD:
from_secret: conda-password
when:
branch:
- release
- name: cleanup
commands:
- Remove-Item -Recurse -Force -ErrorAction Ignore C:\\Windows\\Temp\\pyrocko*
---
kind: pipeline
type: docker
name: notify-hive
depends_on:
- coverage
- flake8
- docs
- tests-windows
- pip
- pip-windows
- conda-packages-linux
- conda-packages-osx
- conda-packages-windows
trigger:
status:
- success
- failure
steps:
- name: post
image: pyrocko-nest
pull: never
commands:
- maintenance/drone-matterpost.py
environment:
WEBHOOK:
from_secret: hive-webhook