Skip to content

Commit 164ab6d

Browse files
authored
Build More Robots (#52)
* mostly working 3 product pipepline * pipeline templating * fix product name * fix up release deps * fix selecting single product * work on combine * fix reference to robotlab in windows installer * don't build all the installers in robotlab * build all conda packages at once * add ride (why not) * parametrize job name * also build ride in ci * also test noarch on osx * get ride from build channel * put platform in parameters * be less clever in dependsOn * release dependson * platform not a map in release * also block exo for windows build * comment out non-robotlab products for now * add buildId to all artifacts for downloading sanity
1 parent bd11af0 commit 164ab6d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+933
-324
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ _cache/
55
*.ipynb_checkpoints/
66
*.pyc
77
build/
8-
constructor/construct.yaml
8+
**/construct.yaml
99
dist/
1010
envs/
1111
**/icons/*.png

azure-pipelines.yml

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,15 @@ jobs:
1616
- template: ci/job.noarch.yml
1717
- template: ci/job.win.yml
1818
- template: ci/job.lab.yml
19+
# - template: ci/job.min.yml
1920

20-
# group two: verify conda builds, do acceptance tests
21+
# group two: build installers, verify conda builds
2122
- template: ci/job.noarch-test.yml
22-
- template: ci/job.win-test.yml
23-
24-
- template: ci/job.main.yml
25-
parameters:
26-
name: Linux
27-
vmImage: ubuntu-16.04
28-
29-
- template: ci/job.main.yml
30-
parameters:
31-
name: MacOSX
32-
vmImage: macos-10.13
33-
3423
- template: ci/job.main.yml
35-
parameters:
36-
name: Windows
37-
vmImage: vs2017-win2016
38-
activate: call activate &&
39-
40-
- template: ci/job.selftest.yml
41-
parameters:
42-
name: Linux
43-
vmImage: ubuntu-16.04
44-
45-
- template: ci/job.selftest.yml
46-
parameters:
47-
name: MacOSX
48-
vmImage: macos-10.13
4924

25+
# group three: acceptance testing
5026
- template: ci/job.selftest.yml
51-
parameters:
52-
name: Windows
53-
vmImage: vs2017-win2016
5427

55-
# group 3: reporting, etc
28+
# group four: reporting, etc
5629
- template: ci/job.combine.yml
5730
- template: ci/job.release.yml

ci/job.combine.yml

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
1+
parameters:
2+
name: Linux
3+
vmImage: ubuntu-16.04
4+
githubConnection: release-robots-from-jupyter
5+
repositoryName: robots-from-jupyter/robotlab
6+
platforms:
7+
- Linux
8+
- MacOSX
9+
- Windows
10+
products:
11+
- RobotLab
12+
# - MiniRobot
13+
# - ExoRobot
14+
constructors: _artifacts/constructor
15+
116
jobs:
217
- job: Combine
318
dependsOn:
4-
- LinuxTest
5-
- MacOSXTest
6-
- WindowsTest
19+
- ${{ each platform in parameters.platforms }}:
20+
- ${{ each product in parameters.products }}:
21+
- ${{ product }}${{ platform }}Test
722
condition: always()
823
pool:
924
vmImage: ubuntu-16.04
@@ -12,34 +27,22 @@ jobs:
1227
parameters:
1328
envPath: ci/env-combine.yml
1429

15-
- task: DownloadPipelineArtifact@0
16-
condition: always()
17-
inputs:
18-
artifactName: Robot Output Linux
19-
targetPath: _artifacts/test_output
20-
displayName: Restore Robot Output Linux
21-
22-
- task: DownloadPipelineArtifact@0
23-
condition: always()
24-
inputs:
25-
artifactName: Robot Output MacOSX
26-
targetPath: _artifacts/test_output
27-
displayName: Restore Robot Output MacOSX
28-
29-
- task: DownloadPipelineArtifact@0
30-
condition: always()
31-
inputs:
32-
artifactName: Robot Output Windows
33-
targetPath: _artifacts/test_output
34-
displayName: Restore Robot Output Windows
30+
- ${{ each platform in parameters.platforms }}:
31+
- ${{ each product in parameters.products }}:
32+
- task: DownloadPipelineArtifact@0
33+
condition: always()
34+
inputs:
35+
artifactName: ${{ product }} ${{ platform }} Output $(Build.BuildId)
36+
targetPath: _artifacts/test_output
37+
displayName: restore ${{ product }} ${{ platform }} output
3538

3639
- script: python -m scripts.combine
3740
condition: always()
38-
displayName: Rebot
41+
displayName: combine outputs
3942

4043
- task: PublishPipelineArtifact@1
4144
condition: always()
42-
displayName: Publish Combined Robot Output
45+
displayName: publish combined output
4346
inputs:
4447
targetPath: _artifacts/test_output
45-
artifactName: RobotLab Robot Output
48+
artifactName: All Robot Output $(Build.BuildId)

ci/job.lab.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
jobs:
2-
- job: lab
2+
- job: Lab
33
pool:
44
vmImage: ubuntu-16.04
55

@@ -24,5 +24,5 @@ jobs:
2424
displayName: publish jupyterlab package
2525
inputs:
2626
targetPath: _artifacts/app_dir
27-
artifactName: robotlab app_dir
27+
artifactName: robotlab app_dir $(Build.BuildId)
2828
condition: succeeded()

ci/job.main.yml

Lines changed: 59 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,62 @@
11
parameters:
2-
name: Linux
3-
vmImage: ubuntu-16.04
4-
activate: ""
5-
2+
products:
3+
- RobotLab
4+
# - ExoRobot
5+
platforms:
6+
- name: Linux
7+
vmImage: ubuntu-16.04
8+
activate: ""
9+
- name: MacOSX
10+
vmImage: macos-10.13
11+
activate: ""
12+
- name: Windows
13+
vmImage: vs2017-win2016
14+
activate: call activate &&
615
jobs:
7-
- job: ${{ parameters.name }}Build
8-
condition: succeeded()
9-
dependsOn:
10-
- lab
11-
- conda_noarch
12-
- ${{ if eq(parameters.name, 'Windows') }}:
13-
- conda_win
14-
pool:
15-
vmImage: ${{ parameters.vmImage }}
16-
17-
steps:
18-
- template: steps.restore.yml
19-
parameters:
20-
name: ${{ parameters.name }}
21-
22-
- task: DownloadPipelineArtifact@0
23-
inputs:
24-
artifactName: robotlab app_dir
25-
targetPath: _artifacts/app_dir
26-
displayName: restore jupyterlab
27-
28-
- template: steps.conda.yml
29-
parameters:
30-
name: ${{ parameters.name }}
31-
envPath: ci/env-main.yml
32-
33-
- script: ${{ parameters.activate }} python -m scripts.build conda
34-
displayName: build/test remaining packages
35-
36-
- script: ${{ parameters.activate }} python -m scripts.build constructor
37-
displayName: build installer
38-
39-
- ${{ if eq(parameters.name, 'MacOSX') }}:
40-
- script: chmod -R 777 _artifacts
41-
displayName: fix artifact permissions
42-
43-
- task: PublishPipelineArtifact@1
44-
displayName: publish installer
45-
inputs:
46-
targetPath: _artifacts/constructor
47-
artifactName: RobotLab for ${{ parameters.name }}
16+
- ${{ each product in parameters.products }}:
17+
- ${{ each platform in parameters.platforms }}:
18+
- job: ${{ product }}${{ platform.name }}Build
19+
pool:
20+
vmImage: ${{ platform.vmImage }}
4821
condition: succeeded()
22+
dependsOn:
23+
- CondaNoarch
24+
- ${{ if eq(product, 'RobotLab') }}:
25+
- Lab
26+
- ${{ if eq(platform.name, 'Windows') }}:
27+
- CondaWindows
28+
29+
steps:
30+
- template: steps.restore.yml
31+
parameters:
32+
name: ${{ platform.name }}
33+
34+
- ${{ if eq(product, 'RobotLab') }}:
35+
- task: DownloadPipelineArtifact@0
36+
inputs:
37+
artifactName: robotlab app_dir $(Build.BuildId)
38+
targetPath: _artifacts/app_dir
39+
displayName: restore jupyterlab
40+
41+
- template: steps.conda.yml
42+
parameters:
43+
name: ${{ platform.name }}
44+
envPath: ci/env-main.yml
45+
46+
- ${{ if eq(product, 'RobotLab') }}:
47+
- script: ${{ platform.activate }} python -m scripts.build conda
48+
displayName: build/test remaining packages
49+
50+
- script: ${{ platform.activate }} python -m scripts.build constructor ${{ product }}
51+
displayName: build installer
52+
53+
- ${{ if eq(platform.name, 'MacOSX') }}:
54+
- script: chmod -R 777 _artifacts
55+
displayName: fix artifact permissions
56+
57+
- task: PublishPipelineArtifact@1
58+
displayName: publish installer
59+
inputs:
60+
targetPath: _artifacts/constructor
61+
artifactName: ${{ product }} for ${{ platform.name }} $(Build.BuildId)
62+
condition: succeeded()

ci/job.min.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
parameters:
2+
products:
3+
- MiniRobot
4+
platforms:
5+
- name: Linux
6+
vmImage: ubuntu-16.04
7+
activate: ""
8+
- name: MacOSX
9+
vmImage: macos-10.13
10+
activate: ""
11+
- name: Windows
12+
vmImage: vs2017-win2016
13+
activate: call activate &&
14+
15+
jobs:
16+
- ${{ each product in parameters.products }}:
17+
- ${{ each platform in parameters.platforms }}:
18+
- job: ${{ product }}${{ platform.name }}Build
19+
condition: succeeded()
20+
pool:
21+
vmImage: ${{ platform.vmImage }}
22+
23+
steps:
24+
- template: steps.conda.yml
25+
parameters:
26+
name: ${{ platform.name }}
27+
envPath: ci/env-main.yml
28+
29+
- script: ${{ platform.activate }} python -m scripts.build constructor ${{ product }}
30+
displayName: build installer
31+
32+
- ${{ if eq(parameters.name, 'MacOSX') }}:
33+
- script: chmod -R 777 _artifacts
34+
displayName: fix artifact permissions
35+
36+
- task: PublishPipelineArtifact@1
37+
displayName: publish installer
38+
inputs:
39+
targetPath: _artifacts/constructor
40+
artifactName: ${{ product }} for ${{ platform.name }} $(Build.BuildId)
41+
condition: succeeded()

ci/job.noarch-test.yml

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,33 @@
1+
parameters:
2+
platforms:
3+
- name: Linux
4+
vmImage: ubuntu-16.04
5+
activate: ""
6+
- name: MacOSX
7+
vmImage: macos-10.13
8+
activate: ""
9+
- name: Windows
10+
vmImage: vs2017-win2016
11+
activate: call activate &&
12+
113
jobs:
2-
- job: conda_noarch_test
3-
pool:
4-
vmImage: ubuntu-16.04
5-
condition: succeeded()
6-
dependsOn:
7-
- conda_noarch
14+
- ${{ each platform in parameters.platforms }}:
15+
- job: CondaNoarchTest${{ platform.name }}
16+
pool:
17+
vmImage: ${{ platform.vmImage }}
18+
condition: succeeded()
19+
dependsOn:
20+
- CondaNoarch
21+
- CondaWindows
822

9-
steps:
10-
- template: steps.restore.yml
23+
steps:
24+
- template: steps.restore.yml
25+
parameters:
26+
name: ${{ platform.name }}
1127

12-
- template: steps.conda.yml
28+
- template: steps.conda.yml
29+
parameters:
30+
name: ${{ platform.name }}
1331

14-
- script: python -m scripts.test conda
15-
displayName: test noarch packages
32+
- script: ${{ platform.activate }} python -m scripts.test conda
33+
displayName: test prebuilt packages

ci/job.noarch.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
jobs:
2-
- job: conda_noarch
2+
- job: CondaNoarch
33
pool:
44
vmImage: ubuntu-16.04
55

@@ -12,12 +12,13 @@ jobs:
1212
restinstance \
1313
robotframework-jupyterlibrary \
1414
robotframework-seleniumscreenshots \
15-
robotkernel
15+
robotkernel \
16+
robotframework-ride
1617
displayName: build noarch packages
1718
1819
- task: PublishPipelineArtifact@0
1920
displayName: publish noarch packages
2021
inputs:
2122
targetPath: _artifacts/conda-bld/noarch
22-
artifactName: noarch conda packages
23+
artifactName: noarch conda packages $(Build.BuildId)
2324
condition: succeeded()

0 commit comments

Comments
 (0)