@@ -27,7 +27,6 @@ pipeline {
2727 PIP_CACHE = " ${ env.WORKSPACE} /.cache"
2828 }
2929 options {
30- timeout(time : 1 , unit : ' HOURS' )
3130 buildDiscarder(logRotator(numToKeepStr : ' 20' , artifactNumToKeepStr : ' 20' , daysToKeepStr : ' 30' ))
3231 timestamps()
3332 ansiColor(' xterm' )
@@ -47,9 +46,9 @@ pipeline {
4746 }
4847 stages {
4948 stage(' Initializing' ){
50- options { skipDefaultCheckout() }
51- environment {
52- PATH = " ${ env.WORKSPACE } /.local/bin: ${ env.WORKSPACE } /bin: ${ env.PATH } "
49+ options {
50+ skipDefaultCheckout()
51+ timeout( time : 1 , unit : ' HOURS ' )
5352 }
5453 stages {
5554 /**
@@ -80,6 +79,9 @@ pipeline {
8079 }
8180 }
8281 }
82+ environment {
83+ PATH = " ${ env.WORKSPACE} /.local/bin:${ env.WORKSPACE} /bin:${ env.PATH} "
84+ }
8385 steps {
8486 withGithubNotify(context : ' Sanity checks' , tab : ' tests' ) {
8587 deleteDir()
@@ -95,148 +97,148 @@ pipeline {
9597 }
9698 }
9799 }
98- }
99- }
100- /**
101- Execute unit tests.
102- */
103- stage(' Test' ) {
104- options { skipDefaultCheckout() }
105- when {
106- beforeAgent true
107- allOf {
108- expression { return env. ONLY_DOCS == " false" }
109- expression { return params. tests_ci }
110- }
111- }
112- steps {
113- withGithubNotify(context : ' Test' , tab : ' tests' ) {
114- deleteDir()
115- unstash " source"
116- dir(" ${ BASE_DIR} " ){
117- script {
118- // To enable the full test matrix upon GitHub PR comments
119- def frameworkFile = ' .ci/.jenkins_framework.yml'
120- if (env. GITHUB_COMMENT ?. contains(' full tests' )) {
121- log(level : ' INFO' , text : ' Full test matrix has been enabled.' )
122- frameworkFile = ' .ci/.jenkins_framework_full.yml'
123- }
124- pythonTasksGen = new PythonParallelTaskGenerator (
125- xKey : ' PYTHON_VERSION' ,
126- yKey : ' FRAMEWORK' ,
127- xFile : " .ci/.jenkins_python.yml" ,
128- yFile : frameworkFile,
129- exclusionFile : " .ci/.jenkins_exclude.yml" ,
130- tag : " Python" ,
131- name : " Python" ,
132- steps : this
133- )
134- def mapParallelTasks = pythonTasksGen. generateParallelTests()
100+ /**
101+ Execute unit tests.
102+ */
103+ stage(' Test' ) {
104+ options { skipDefaultCheckout() }
105+ when {
106+ beforeAgent true
107+ allOf {
108+ expression { return env. ONLY_DOCS == " false" }
109+ expression { return params. tests_ci }
110+ }
111+ }
112+ steps {
113+ withGithubNotify(context : ' Test' , tab : ' tests' ) {
114+ deleteDir()
115+ unstash " source"
116+ dir(" ${ BASE_DIR} " ){
117+ script {
118+ // To enable the full test matrix upon GitHub PR comments
119+ def frameworkFile = ' .ci/.jenkins_framework.yml'
120+ if (env. GITHUB_COMMENT ?. contains(' full tests' )) {
121+ log(level : ' INFO' , text : ' Full test matrix has been enabled.' )
122+ frameworkFile = ' .ci/.jenkins_framework_full.yml'
123+ }
124+ pythonTasksGen = new PythonParallelTaskGenerator (
125+ xKey : ' PYTHON_VERSION' ,
126+ yKey : ' FRAMEWORK' ,
127+ xFile : " .ci/.jenkins_python.yml" ,
128+ yFile : frameworkFile,
129+ exclusionFile : " .ci/.jenkins_exclude.yml" ,
130+ tag : " Python" ,
131+ name : " Python" ,
132+ steps : this
133+ )
134+ def mapParallelTasks = pythonTasksGen. generateParallelTests()
135135
136- // Let's now enable the windows stages
137- readYaml(file : ' .ci/.jenkins_windows.yml' )[' windows' ]. each { v ->
138- def description = " ${ v.VERSION} -${ v.WEBFRAMEWORK} "
139- mapParallelTasks[" windows-${ description} " ] = generateStepForWindows(v)
136+ // Let's now enable the windows stages
137+ readYaml(file : ' .ci/.jenkins_windows.yml' )[' windows' ]. each { v ->
138+ def description = " ${ v.VERSION} -${ v.WEBFRAMEWORK} "
139+ mapParallelTasks[" windows-${ description} " ] = generateStepForWindows(v)
140+ }
141+ parallel(mapParallelTasks)
142+ }
140143 }
141- parallel(mapParallelTasks)
142144 }
143145 }
144- }
145- }
146- post {
147- always {
148- convergeCoverage()
149- generateResultsReport()
150- }
151- }
152- }
153- stage(' Building packages' ) {
154- options { skipDefaultCheckout() }
155- environment {
156- PATH = " ${ env.WORKSPACE} /.local/bin:${ env.WORKSPACE} /bin:${ env.PATH} "
157- }
158- when {
159- beforeAgent true
160- allOf {
161- expression { return env. ONLY_DOCS == " false" }
162- expression { return params. package_ci }
163- }
164- }
165- steps {
166- withGithubNotify(context : ' Building packages' ) {
167- deleteDir()
168- unstash ' source'
169- dir(" ${ BASE_DIR} " ){
170- sh script : ' pip3 install --user cibuildwheel' , label : " Installing cibuildwheel"
171- sh script : ' mkdir wheelhouse' , label : " creating wheelhouse"
172- sh script : ' cibuildwheel --platform linux --output-dir wheelhouse; ls -l wheelhouse'
146+ post {
147+ always {
148+ convergeCoverage()
149+ generateResultsReport()
150+ }
173151 }
174- stash allowEmpty : true , name : ' packages' , includes : " ${ BASE_DIR} /wheelhouse/*.whl,${ BASE_DIR} /dist/*.tar.gz" , useDefaultExcludes : false
175152 }
176- }
177- }
178- stage(' Integration Tests' ) {
179- agent none
180- when {
181- beforeAgent true
182- allOf {
183- expression { return env. ONLY_DOCS == " false" }
184- anyOf {
185- changeRequest()
186- expression { return ! params.Run_As_Master_Branch }
153+ stage(' Building packages' ) {
154+ options { skipDefaultCheckout() }
155+ environment {
156+ PATH = " ${ env.WORKSPACE} /.local/bin:${ env.WORKSPACE} /bin:${ env.PATH} "
157+ }
158+ when {
159+ beforeAgent true
160+ allOf {
161+ expression { return env. ONLY_DOCS == " false" }
162+ expression { return params. package_ci }
163+ }
164+ }
165+ steps {
166+ withGithubNotify(context : ' Building packages' ) {
167+ deleteDir()
168+ unstash ' source'
169+ dir(" ${ BASE_DIR} " ){
170+ sh script : ' pip3 install --user cibuildwheel' , label : " Installing cibuildwheel"
171+ sh script : ' mkdir wheelhouse' , label : " creating wheelhouse"
172+ sh script : ' cibuildwheel --platform linux --output-dir wheelhouse; ls -l wheelhouse'
173+ }
174+ stash allowEmpty : true , name : ' packages' , includes : " ${ BASE_DIR} /wheelhouse/*.whl,${ BASE_DIR} /dist/*.tar.gz" , useDefaultExcludes : false
175+ }
187176 }
188177 }
189- }
190- steps {
191- build(job : env. ITS_PIPELINE , propagate : false , wait : false ,
192- parameters : [string(name : ' INTEGRATION_TEST' , value : ' Python' ),
193- string(name : ' BUILD_OPTS' , value : " --with-agent-python-flask --python-agent-package git+https://github.com/${ env.CHANGE_FORK?.trim() ?: 'elastic' } /${ env.REPO} .git@${ env.GIT_BASE_COMMIT} --opbeans-python-agent-branch ${ env.GIT_BASE_COMMIT} " ),
194- string(name : ' GITHUB_CHECK_NAME' , value : env. GITHUB_CHECK_ITS_NAME ),
195- string(name : ' GITHUB_CHECK_REPO' , value : env. REPO ),
196- string(name : ' GITHUB_CHECK_SHA1' , value : env. GIT_BASE_COMMIT )])
197- githubNotify(context : " ${ env.GITHUB_CHECK_ITS_NAME} " , description : " ${ env.GITHUB_CHECK_ITS_NAME} ..." , status : ' PENDING' , targetUrl : " ${ env.JENKINS_URL} search/?q=${ env.ITS_PIPELINE.replaceAll('/','+')} " )
198- }
199- }
200- stage(' Benchmarks' ) {
201- agent { label ' metal' }
202- options { skipDefaultCheckout() }
203- environment {
204- AGENT_WORKDIR = " ${ env.WORKSPACE} /${ env.BUILD_NUMBER} /${ env.BASE_DIR} "
205- LANG = ' C.UTF-8'
206- LC_ALL = " ${ env.LANG} "
207- PATH = " ${ env.WORKSPACE} /.local/bin:${ env.WORKSPACE} /bin:${ env.PATH} "
208- }
209- when {
210- beforeAgent true
211- allOf {
212- anyOf {
213- branch ' master'
214- expression { return params.Run_As_Master_Branch }
215- expression { return env. GITHUB_COMMENT ?. contains(' benchmark tests' ) }
178+ stage(' Integration Tests' ) {
179+ agent none
180+ when {
181+ beforeAgent true
182+ allOf {
183+ expression { return env. ONLY_DOCS == " false" }
184+ anyOf {
185+ changeRequest()
186+ expression { return ! params.Run_As_Master_Branch }
187+ }
188+ }
189+ }
190+ steps {
191+ build(job : env. ITS_PIPELINE , propagate : false , wait : false ,
192+ parameters : [string(name : ' INTEGRATION_TEST' , value : ' Python' ),
193+ string(name : ' BUILD_OPTS' , value : " --with-agent-python-flask --python-agent-package git+https://github.com/${ env.CHANGE_FORK?.trim() ?: 'elastic' } /${ env.REPO} .git@${ env.GIT_BASE_COMMIT} --opbeans-python-agent-branch ${ env.GIT_BASE_COMMIT} " ),
194+ string(name : ' GITHUB_CHECK_NAME' , value : env. GITHUB_CHECK_ITS_NAME ),
195+ string(name : ' GITHUB_CHECK_REPO' , value : env. REPO ),
196+ string(name : ' GITHUB_CHECK_SHA1' , value : env. GIT_BASE_COMMIT )])
197+ githubNotify(context : " ${ env.GITHUB_CHECK_ITS_NAME} " , description : " ${ env.GITHUB_CHECK_ITS_NAME} ..." , status : ' PENDING' , targetUrl : " ${ env.JENKINS_URL} search/?q=${ env.ITS_PIPELINE.replaceAll('/','+')} " )
216198 }
217- expression { return params. bench_ci }
218199 }
219- }
220- steps {
221- withGithubNotify(context : ' Benchmarks' , tab : ' artifacts' ) {
222- dir(env. BUILD_NUMBER ) {
223- deleteDir()
224- unstash ' source'
225- script {
226- dir(BASE_DIR ){
227- sendBenchmarks. prepareAndRun(secret : env. BENCHMARK_SECRET , url_var : ' ES_URL' ,
228- user_var : ' ES_USER' , pass_var : ' ES_PASS' ) {
229- sh ' scripts/run-benchmarks.sh "${AGENT_WORKDIR}" "${ES_URL}" "${ES_USER}" "${ES_PASS}"'
200+ stage(' Benchmarks' ) {
201+ agent { label ' metal' }
202+ options { skipDefaultCheckout() }
203+ environment {
204+ AGENT_WORKDIR = " ${ env.WORKSPACE} /${ env.BUILD_NUMBER} /${ env.BASE_DIR} "
205+ LANG = ' C.UTF-8'
206+ LC_ALL = " ${ env.LANG} "
207+ PATH = " ${ env.WORKSPACE} /.local/bin:${ env.WORKSPACE} /bin:${ env.PATH} "
208+ }
209+ when {
210+ beforeAgent true
211+ allOf {
212+ anyOf {
213+ branch ' master'
214+ expression { return params.Run_As_Master_Branch }
215+ expression { return env. GITHUB_COMMENT ?. contains(' benchmark tests' ) }
216+ }
217+ expression { return params. bench_ci }
218+ }
219+ }
220+ steps {
221+ withGithubNotify(context : ' Benchmarks' , tab : ' artifacts' ) {
222+ dir(env. BUILD_NUMBER ) {
223+ deleteDir()
224+ unstash ' source'
225+ script {
226+ dir(BASE_DIR ){
227+ sendBenchmarks. prepareAndRun(secret : env. BENCHMARK_SECRET , url_var : ' ES_URL' ,
228+ user_var : ' ES_USER' , pass_var : ' ES_PASS' ) {
229+ sh ' scripts/run-benchmarks.sh "${AGENT_WORKDIR}" "${ES_URL}" "${ES_USER}" "${ES_PASS}"'
230+ }
231+ }
230232 }
231233 }
232234 }
233235 }
234- }
235- }
236- post {
237- always {
238- catchError( message : ' deleteDir failed ' , buildResult : ' SUCCESS ' , stageResult : ' UNSTABLE ' ) {
239- deleteDir()
236+ post {
237+ always {
238+ catchError( message : ' deleteDir failed ' , buildResult : ' SUCCESS ' , stageResult : ' UNSTABLE ' ) {
239+ deleteDir()
240+ }
241+ }
240242 }
241243 }
242244 }
0 commit comments