Deploy releases via Azure
Markus Gerstel
3 years ago
0 | |
jobs:
|
|
0 |
trigger:
|
|
1 |
branches:
|
|
2 |
include:
|
|
3 |
- '*'
|
|
4 |
tags:
|
|
5 |
include:
|
|
6 |
- '*'
|
|
7 |
|
|
8 |
stages:
|
|
9 |
- stage: static
|
|
10 |
displayName: Static Analysis
|
|
11 |
jobs:
|
1 | 12 |
- job: checks
|
2 | 13 |
displayName: static code analysis
|
3 | 14 |
pool:
|
|
20 | 31 |
python .azure-pipelines/flake8-validation.py
|
21 | 32 |
displayName: Flake8 validation
|
22 | 33 |
|
|
34 |
- stage: tests
|
|
35 |
displayName: Run unit tests
|
|
36 |
jobs:
|
23 | 37 |
- job: linux
|
24 | 38 |
pool:
|
25 | 39 |
vmImage: ubuntu-latest
|
|
33 | 47 |
PYTHON_VERSION: 3.8
|
34 | 48 |
python39:
|
35 | 49 |
PYTHON_VERSION: 3.9
|
36 | |
|
37 | 50 |
steps:
|
38 | 51 |
- template: .azure-pipelines/ci.yml
|
39 | 52 |
|
|
50 | 63 |
PYTHON_VERSION: 3.8
|
51 | 64 |
python39:
|
52 | 65 |
PYTHON_VERSION: 3.9
|
53 | |
|
54 | 66 |
steps:
|
55 | 67 |
- template: .azure-pipelines/ci.yml
|
56 | 68 |
|
|
67 | 79 |
PYTHON_VERSION: 3.8
|
68 | 80 |
python39:
|
69 | 81 |
PYTHON_VERSION: 3.9
|
70 | |
|
71 | 82 |
steps:
|
72 | 83 |
- template: .azure-pipelines/ci.yml
|
|
84 |
|
|
85 |
- stage: deploy
|
|
86 |
displayName: Publish release
|
|
87 |
dependsOn:
|
|
88 |
- tests
|
|
89 |
- static
|
|
90 |
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
|
|
91 |
jobs:
|
|
92 |
- job: pypi
|
|
93 |
displayName: Publish pypi release
|
|
94 |
pool:
|
|
95 |
vmImage: ubuntu-latest
|
|
96 |
steps:
|
|
97 |
- task: UsePythonVersion@0
|
|
98 |
displayName: Set up python
|
|
99 |
inputs:
|
|
100 |
versionSpec: 3.8
|
|
101 |
|
|
102 |
- bash: |
|
|
103 |
python -m pip install -r requirements_dev.txt
|
|
104 |
displayName: Install dependencies
|
|
105 |
|
|
106 |
- bash: |
|
|
107 |
python setup.py sdist bdist_wheel
|
|
108 |
ls -la dist
|
|
109 |
displayName: Build python package
|
|
110 |
|
|
111 |
- task: PublishBuildArtifacts@1
|
|
112 |
inputs:
|
|
113 |
pathToPublish: dist/
|
|
114 |
artifactName: python-release
|
|
115 |
|
|
116 |
- task: TwineAuthenticate@1
|
|
117 |
displayName: Set up credentials
|
|
118 |
inputs:
|
|
119 |
pythonUploadServiceConnection: pypi-procrunner
|
|
120 |
|
|
121 |
- bash: |
|
|
122 |
python -m twine upload -r pypi-procrunner --config-file $(PYPIRC_PATH) dist/*.tar.gz dist/*.whl
|
|
123 |
displayName: Publish package
|
41 | 41 |
|
42 | 42 |
# Command to run tests, e.g. python setup.py test
|
43 | 43 |
script: tox
|
44 | |
|
45 | |
# Assuming you have installed the travis-ci CLI tool, after you
|
46 | |
# create the Github repo and add it to Travis, run the
|
47 | |
# following command to finish PyPI deployment setup:
|
48 | |
# $ travis encrypt --add deploy.password
|
49 | |
deploy:
|
50 | |
provider: pypi
|
51 | |
distributions: sdist bdist_wheel
|
52 | |
user: mgerstel
|
53 | |
password:
|
54 | |
secure: wIIH59zYpK/AZM7rM2SSz2Iu72cUPBK323X/QhueLc9rHI1i8qCVlEQAO89Oog13fpYOzbgWDFoGnLQahrxf1EHXIpz0+VSZNk1lFsR61sCo4oJEJAklkjwFhb7cdb30/CjJe6z+HqkYkkSu6ErQu5xyPRfPJiJkw0fufmNw8S8XRLDEdi0RV3Jkt+3x5Ndd2D0AIuZhCSznOGZPOuj7G5px8/ZZcbAue76IQ/jyXMu7n6kjcOCg3OJnOK8wjcZ0v68dOl3JAvId2pQlGvgRxOsmc2dFake3YLNzpQMvn+KrqC4yq0K0IBhGFvXwvVnf/jCbEi+onVgBTQcY8fiTD4U2jpWah2kypvGXUGo8Lpr84Ill4ZZKSAxI+zeKslRPGTHV8yqv3KEmlGRPSiUvC2fU/I1tWiMq3P24Wlron5jDegVMqvjMDrJdpud4mDksydvsVJ9/XhCeNeNWzhkMzyzhBjS6Cx97n/znkNR4CzFVsoONvZnaY3GcWqsrSduDFjn77sIb9srbK5W4rPrXZkRB8qcC+/rtyNpw50ItO6uGwRlesNS1oTthwMf9fZXzoFXXkrZuvxCmxVoO+/KKvXTq8w/JMUqYrAdSv5l7ee98lChfksmqk+Bh+DSSkPdo3FpwIDdAeUtm2T/BOAlQvuA4TH486X6bOuei8PAixFs=
|
55 | |
on:
|
56 | |
tags: true
|
57 | |
repo: DiamondLightSource/python-procrunner
|
58 | |
python: 3.8
|