-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathazure-pipelines.yml
134 lines (114 loc) · 4.37 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
trigger:
branches:
include:
- main
pool: 'cybertron-build-pool'
variables:
tag: '$(Build.BuildId)'
stages:
- stage: Build_and_Publish_Python_Artifact
displayName: Build, package and publish python artifacts.
jobs:
- job: BuildPythonArtifact
displayName: Build and package python artifacts.
strategy:
matrix:
Python:
python.version: '3.11'
steps:
- task: NodeTool@0
inputs:
versionSpec: '20.x'
- script: |
virtualenv -p python$(python.version) env
source env/bin/activate
python -m pip install -U "jupyterlab>=4.0.0,<5"
displayName: 'Install dependencies'
- script: |
set -eux
source env/bin/activate
jlpm
jlpm run lint:check
displayName: 'Lint the extension'
- script: |
set -eux
source env/bin/activate
python -m pip install -v .[all]
displayName: 'Build the extension'
- script: |
set -eux
echo '.$(tag)' >> version.txt
source env/bin/activate
pip install build
python -m build
displayName: 'Package the extension'
- task: CopyFiles@2
inputs:
targetFolder: $(Build.ArtifactStagingDirectory)
displayName: 'Stage build artifact to publish'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)/dist'
artifactName: 'dist'
publishLocation: 'Container'
displayName: 'Publish build artifacts'
- job: PublishArtifactToAPAFeed
displayName: Publish artifact to APA feed
dependsOn: BuildPythonArtifact
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'specific'
downloadPath: '$(Pipeline.Workspace)'
displayName: 'Download build artifact'
- task: TwineAuthenticate@1
inputs:
artifactFeed: Analytical Platform/analytical-platform
displayName: 'Twine Authenticate'
- script: |
virtualenv -p python$(python.version) env
source env/bin/activate
pip install twine
python -m twine upload --skip-existing -r analytical-platform --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/dist/* --verbose
displayName: 'Publish artifact to analytical-platform feed'
- job: PublishArtifactToBoHFeed
displayName: Publish artifact to BoH feed
dependsOn: BuildPythonArtifact
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'specific'
downloadPath: '$(Pipeline.Workspace)'
displayName: 'Download build artifact'
- task: TwineAuthenticate@1
inputs:
pythonUploadServiceConnection: pypi-bagofholding
displayName: 'Twine Authenticate'
- script: |
virtualenv -p python$(python.version) env
source env/bin/activate
pip install twine
python -m twine upload --skip-existing -r pypi-bagofholding --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/dist/* --verbose
displayName: 'Publish artifact to BoH feed'
- job: PublishArtifactToPypi
displayName: Publish artifact to PyPI
dependsOn: BuildPythonArtifact
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'specific'
downloadPath: '$(Pipeline.Workspace)'
displayName: 'Download build artifact'
- task: TwineAuthenticate@1
inputs:
pythonUploadServiceConnection: cccs-pypi
displayName: 'Twine Authenticate'
- script: |
virtualenv -p python$(python.version) env
source env/bin/activate
pip install twine
python -m twine upload --skip-existing -r "cccs-pypi" --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/dist/* --verbose
displayName: 'Publish artifact to PyPI'