-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathazure-pipelines.yml
150 lines (126 loc) · 4.04 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
trigger:
paths:
exclude:
- rlberry_scool/_version.py
- docs
pr:
paths:
exclude:
- rlberry_scool/_version.py
- docs
jobs:
- job: 'checkPrLabel'
continueOnError: false
pool:
vmImage: ubuntu-22.04
steps:
- bash: |
echo "Looking for label at https://api.github.com/repos/$BUILD_REPOSITORY_ID/issues/$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER/labels"
if curl -s "https://api.github.com/repos/$BUILD_REPOSITORY_ID/issues/$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER/labels" | grep '"name": "ready for review"'
then
echo "##vso[task.setvariable variable=prHasCILabel;isOutput=true]true"
echo "[INFO] ready for review label found!"
fi
displayName: Check for CI label build on PR
condition: eq(variables['Build.Reason'], 'PullRequest') # only run step if it is a PR
name: checkPrLabel
- job: 'linux'
dependsOn: checkPrLabel
# Condition: have ready for review label or on the main branch.
condition: or(in(variables['Build.SourceBranch'], 'refs/heads/main'), eq(dependencies.checkPrLabel.outputs['checkPrLabel.prHasCILabel'], true))
pool:
vmImage: ubuntu-latest
strategy:
matrix:
Python310:
python.version: '3.10'
variables:
NUMBA_DISABLE_JIT: "1"
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install -r requirements.txt
sudo apt install libglu1-mesa
displayName: 'Install dependencies'
- script: |
pip install git+https://github.com/rlberry-py/rlberry.git
displayName: 'Install rlberry'
- script: |
set -xe
pip install -e .
displayName: 'Install rlberry-scool'
- script: |
set -xe
pip install pytest==7.0.1 pytest-azurepipelines pytest-cov pytest-xvfb pytest-xprocess
# run doctests in the documentation
# TODO: use following line for doctest ?
pytest docs/*rst || echo "Ignoring exit status"
pytest --import-mode=importlib --cov=rlberry_scool --cov-report xml rlberry_scool
displayName: 'Test and coverage'
- script: |
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov
displayName: 'Upload to codecov.io'
- job: 'macOS'
dependsOn: checkPrLabel
condition: or(in(variables['Build.SourceBranch'], 'refs/heads/main'), eq(dependencies.checkPrLabel.outputs['checkPrLabel.prHasCILabel'], true))
pool:
vmImage: 'macOS-12'
strategy:
matrix:
Python310:
python.version: '3.10'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install -r requirements.txt
displayName: 'Install dependencies'
- script: |
pip install git+https://github.com/rlberry-py/rlberry.git
displayName: 'Install rlberry'
- script: |
set -xe
pip install -e .
displayName: 'Install rlberry-scool'
- script: |
pip install pytest==7.0.1 pytest-azurepipelines pytest-xvfb
pytest
displayName: 'pytest'
- job: 'windows'
dependsOn: checkPrLabel
condition: or(in(variables['Build.SourceBranch'], 'refs/heads/main'), eq(dependencies.checkPrLabel.outputs['checkPrLabel.prHasCILabel'], true))
pool:
vmImage: 'windows-2022'
strategy:
matrix:
Python310:
python.version: '3.10'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install -r requirements.txt
displayName: 'Install dependencies'
- script: |
pip install git+https://github.com/rlberry-py/rlberry.git
displayName: 'Install rlberry'
- script: |
set -xe
pip install -e .
displayName: 'Install rlberry-scool'
- script: |
pip install pytest==7.0.1 pytest-azurepipelines pytest-xvfb
pytest --ignore=rlberry/network
displayName: 'pytest'