Merge pull request #513 from KPrasch/publish

Publication Automation
pull/514/head^2
K Prasch 2018-11-06 11:14:08 +01:00 committed by GitHub
commit 987b548bd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 137 additions and 2 deletions

View File

@ -4,32 +4,62 @@ workflows:
version: 2 version: 2
test: test:
jobs: jobs:
- bundle_dependencies-36 - bundle_dependencies-36:
filters:
tags:
only: /.*/
- eth_contract_unit: - eth_contract_unit:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- config_unit: - config_unit:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- crypto_unit: - crypto_unit:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- network_unit: - network_unit:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- keystore_unit: - keystore_unit:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- blockchain_interface_unit: - blockchain_interface_unit:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- character: - character:
filters:
tags:
only: /.*/
requires: requires:
- bundle_dependencies-36 - bundle_dependencies-36
- intercontract_integration: - intercontract_integration:
filters:
tags:
only: /.*/
requires: requires:
- eth_contract_unit - eth_contract_unit
- mypy_type_check: - mypy_type_check:
filters:
tags:
only: /.*/
requires: requires:
- config_unit - config_unit
- crypto_unit - crypto_unit
@ -37,6 +67,9 @@ workflows:
- keystore_unit - keystore_unit
- character - character
- cli_tests: - cli_tests:
filters:
tags:
only: /.*/
requires: requires:
- blockchain_interface_unit - blockchain_interface_unit
- config_unit - config_unit
@ -44,6 +77,34 @@ workflows:
- network_unit - network_unit
- keystore_unit - keystore_unit
- character - character
- test_deploy:
context: "NuCypher PyPI"
requires:
- mypy_type_check
- cli_tests
filters:
tags:
only: /v[0-9]+.*/
branches:
ignore: /.*/
- request_publication_approval:
type: approval
requires:
- test_deploy
filters:
tags:
only: /v[0-9]+.*/
branches:
ignore: /.*/
- deploy:
context: "NuCypher PyPI"
requires:
- request_publication_approval
filters:
tags:
only: /v[0-9]+.*/
branches:
ignore: /.*/
python_36_base: &python_36_base python_36_base: &python_36_base
working_directory: ~/nucypher-depends working_directory: ~/nucypher-depends
@ -59,7 +120,7 @@ jobs:
name: Install Python Dependencies with Pipenv name: Install Python Dependencies with Pipenv
command: | command: |
pip3 install --user pip==18.0 pip3 install --user pip==18.0
pipenv install --three --dev --skip-lock --verbose pipenv install --three --dev --skip-lock --pre
- run: - run:
name: Install Solidity Compiler name: Install Solidity Compiler
command: pipenv run ./scripts/install_solc.sh command: pipenv run ./scripts/install_solc.sh
@ -200,3 +261,77 @@ jobs:
path: ./mypy_reports path: ./mypy_reports
- store_test_results: - store_test_results:
path: ./mypy_results path: ./mypy_results
test_deploy:
<<: *python_36_base
steps:
- checkout
- run:
name: Install Dependencies (Test Deploy)
command: |
pipenv install --three --dev --skip-lock --pre
pipenv install --dev --skip-lock twine
- run:
name: Verify git tag == __version__ (Test Deploy)
command: pipenv run python setup.py verify
- run:
name: Initialize .pypirc (Test Deploy)
command: |
echo -e "[distutils]" >> ~/.pypirc
echo -e "index-servers = " >> ~/.pypirc
echo -e " pypi" >> ~/.pypirc
echo -e " testpypi" >> ~/.pypirc
echo -e "" >> ~/.pypirc
echo -e "[testpypi]" >> ~/.pypirc
echo -e "repository: https://test.pypi.org/legacy/" >> ~/.pypirc
echo -e "username: $TEST_PYPI_USERNAME" >> ~/.pypirc
echo -e "password: $TEST_PYPI_PASSWORD" >> ~/.pypirc
- run:
name: Build Python Wheel (Test Deploy)
command: |
pipenv run python setup.py sdist
pipenv run python setup.py bdist_wheel
- run:
name: upload to TestPyPI
command: pipenv run twine upload --repository testpypi dist/* --verbose
- run:
name: pip install from TestPyPI
command: |
pip install --user --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple nucypher --verbose
python -c "import nucypher; print(nucypher.__version__)"
deploy:
<<: *python_36_base
steps:
- checkout
- run:
name: Install dependencies
command: |
pipenv install --three --dev --skip-lock --pre
pipenv install --dev --skip-lock twine
- run:
name: Verify git tag == __version__
command: pipenv run python setup.py verify
- run:
name: Initialize .pypirc
command: |
echo -e "[distutils]" >> ~/.pypirc
echo -e "index-servers = " >> ~/.pypirc
echo -e " pypi" >> ~/.pypirc
echo -e "" >> ~/.pypirc
echo -e "[pypi]" >> ~/.pypirc
echo -e "username = $PYPI_USERNAME" >> ~/.pypirc
echo -e "password = $PYPI_PASSWORD" >> ~/.pypirc
- run:
name: Build Python Wheel
command: |
pipenv run python setup.py sdist
pipenv run python setup.py bdist_wheel
- run:
name: Upload to PyPI
command: pipenv run twine upload dist/* --verbose
- run:
name: pip install from PyPI
command: |
pip install --user nucypher --verbose
python -c "import nucypher; print(nucypher.__version__)"