@@ -56,6 +56,11 @@ pipeline {
5656 }
5757 }
5858 steps {
59+ step {
60+ sh '''
61+ oci os object get -ns weblogick8s -bn wko-system-test-files --config-file=/dev/null --auth=instance_principal --file ./imagetool.zip --name imagetool-master.zip
62+ '''
63+ }
5964 withCredentials([[$class : ' UsernamePasswordMultiBinding' , credentialsId : ' otn-cred' , passwordVariable : ' ORACLE_SUPPORT_PASSWORD' , usernameVariable : ' ORACLE_SUPPORT_USERNAME' ]]) {
6065 sh '''
6166 cd tests
@@ -113,4 +118,233 @@ pipeline {
113118 }
114119 }
115120 }
121+ }
122+
123+
124+ def filesDownloaded = 0
125+ def downloadThem () {
126+ if (filesDownloaded == 0 ) {
127+ echo ' Should download now'
128+ filesDownloaded = 1
129+ } else {
130+ echo ' Files already downloaded, nothing to do'
131+ }
132+ echo ' function complete'
133+ }
134+
135+ pipeline {
136+ options {
137+ disableConcurrentBuilds()
138+ }
139+ agent any
140+ tools {
141+ maven ' maven-3.6.0'
142+ jdk ' jdk8'
143+ }
144+
145+ triggers {
146+ // timer trigger for "nightly build" on master branch
147+ cron( env. BRANCH_NAME . equals(' master' ) ? ' H H(0-3) * * 1-5' : ' ' )
148+ }
149+
150+ environment {
151+ // variables for SystemTest stages (integration tests)
152+ STAGING_DIR = " /scratch/artifacts/imagetool"
153+ DB_IMAGE = " phx.ocir.io/weblogick8s/database/enterprise:12.2.0.1-slim"
154+ }
155+
156+ stages {
157+ stage (' Environment' ) {
158+ steps {
159+ sh '''
160+ echo "PATH = ${PATH}"
161+ echo "M2_HOME = ${M2_HOME}"
162+ mvn --version
163+ '''
164+ }
165+ }
166+ stage (' Build' ) {
167+ steps {
168+ sh ' mvn -B -DskipTests -DskipITs clean install'
169+ }
170+ }
171+ stage (' Test' ) {
172+ when {
173+ not { changelog ' \\ [skip-ci\\ ].*' }
174+ }
175+ steps {
176+ sh ' mvn test'
177+ }
178+ post {
179+ always {
180+ junit ' imagetool/target/surefire-reports/*.xml'
181+ }
182+ }
183+ }
184+ stage (' SystemTest Gate' ) {
185+ steps {
186+ script {
187+ downloadThem()
188+ }
189+ withCredentials([[$class : ' UsernamePasswordMultiBinding' , credentialsId : ' otn-cred' , passwordVariable : ' ORACLE_SUPPORT_PASSWORD' , usernameVariable : ' ORACLE_SUPPORT_USERNAME' ]]) {
190+ sh '''
191+ cd tests
192+ mvn clean -Dtest.staging.dir=${STAGING_DIR} -Dtest.groups=gate
193+ '''
194+ }
195+ }
196+ post {
197+ always {
198+ junit ' tests/target/failsafe-reports/*.xml'
199+ }
200+ }
201+ }
202+ stage (' SystemTest Full' ) {
203+ steps {
204+ script {
205+ downloadThem()
206+ docker. image(" ${ env.DB_IMAGE} " ). pull()
207+ }
208+ withCredentials([[$class : ' UsernamePasswordMultiBinding' , credentialsId : ' otn-cred' , passwordVariable : ' ORACLE_SUPPORT_PASSWORD' , usernameVariable : ' ORACLE_SUPPORT_USERNAME' ]]) {
209+ sh '''
210+ cd tests
211+ mvn clean -Dtest.staging.dir=${STAGING_DIR} -Dtest.groups=gate,nightly
212+ '''
213+ }
214+ }
215+ post {
216+ always {
217+ junit ' tests/target/failsafe-reports/*.xml'
218+ }
219+ failure {
220+ mail to : " ${ env.WIT_BUILD_NOTIFICATION_EMAIL_TO} " , from : ' noreply@oracle.com' ,
221+ subject : " WebLogic Image Tool: ${ env.JOB_NAME} - Failed" ,
222+ body : " Job Failed - \" ${ env.JOB_NAME} \" build: ${ env.BUILD_NUMBER} \n\n View the log at:\n ${ env.BUILD_URL} \n "
223+ }
224+ }
225+ }
226+ stage (' Save Nightly Installer' ){
227+ when {
228+ allOf {
229+ triggeredBy ' TimerTrigger'
230+ branch " master"
231+ }
232+ }
233+ steps {
234+ sh '''
235+ oci os object put --namespace=weblogick8s --bucket-name=wko-system-test-files --config-file=/dev/null --auth=instance_principal --force --file=installer/target/imagetool.zip --name=imagetool-master.zip
236+ '''
237+ }
238+ }
239+ }
240+ }
241+
242+ def downloadThem () {
243+ if (filesDownloaded == 0 ) {
244+ echo ' Should download now'
245+ filesDownloaded = 1
246+ } else {
247+ echo ' Files already downloaded, nothing to do'
248+ }
249+ echo ' function complete'
250+ }
251+
252+ pipeline {
253+ options {
254+ disableConcurrentBuilds()
255+ }
256+ agent any
257+ tools {
258+ maven ' maven-3.6.0'
259+ jdk ' jdk8'
260+ }
261+
262+ triggers {
263+ // timer trigger for "nightly build" on master branch
264+ cron( env. BRANCH_NAME . equals(' master' ) ? ' H H(0-3) * * 1-5' : ' ' )
265+ }
266+
267+ environment {
268+ // variables for SystemTest stages (integration tests)
269+ STAGING_DIR = " /scratch/artifacts/imagetool"
270+ DB_IMAGE = " phx.ocir.io/weblogick8s/database/enterprise:12.2.0.1-slim"
271+ filesDownloaded = 0
272+ }
273+
274+ stages {
275+ stage (' Environment' ) {
276+ steps {
277+ sh '''
278+ echo "PATH = ${PATH}"
279+ echo "M2_HOME = ${M2_HOME}"
280+ mvn --version
281+ '''
282+ }
283+ }
284+ stage (' Build' ) {
285+ steps {
286+ sh ' mvn -B -DskipTests -DskipITs clean install'
287+ }
288+ }
289+ stage (' Test' ) {
290+ when {
291+ not { changelog ' \\ [skip-ci\\ ].*' }
292+ }
293+ steps {
294+ sh ' mvn test'
295+ }
296+ post {
297+ always {
298+ junit ' imagetool/target/surefire-reports/*.xml'
299+ }
300+ }
301+ }
302+ stage (' SystemTest Gate' ) {
303+ steps {
304+ script {
305+ downloadThem()
306+ }
307+ withCredentials([[$class : ' UsernamePasswordMultiBinding' , credentialsId : ' otn-cred' , passwordVariable : ' ORACLE_SUPPORT_PASSWORD' , usernameVariable : ' ORACLE_SUPPORT_USERNAME' ]]) {
308+ sh '''
309+ cd tests
310+ mvn clean -Dtest.staging.dir=${STAGING_DIR} -Dtest.groups=gate
311+ '''
312+ }
313+ }
314+ }
315+ stage (' SystemTest Full' ) {
316+ steps {
317+ script {
318+ downloadThem()
319+ docker. image(" ${ env.DB_IMAGE} " ). pull()
320+ }
321+ withCredentials([[$class : ' UsernamePasswordMultiBinding' , credentialsId : ' otn-cred' , passwordVariable : ' ORACLE_SUPPORT_PASSWORD' , usernameVariable : ' ORACLE_SUPPORT_USERNAME' ]]) {
322+ sh '''
323+ cd tests
324+ mvn clean -Dtest.staging.dir=${STAGING_DIR} -Dtest.groups=gate,nightly
325+ '''
326+ }
327+ }
328+ post {
329+ failure {
330+ mail to : " ${ env.WIT_BUILD_NOTIFICATION_EMAIL_TO} " , from : ' noreply@oracle.com' ,
331+ subject : " WebLogic Image Tool: ${ env.JOB_NAME} - Failed" ,
332+ body : " Job Failed - \" ${ env.JOB_NAME} \" build: ${ env.BUILD_NUMBER} \n\n View the log at:\n ${ env.BUILD_URL} \n "
333+ }
334+ }
335+ }
336+ stage (' Save Nightly Installer' ){
337+ when {
338+ allOf {
339+ triggeredBy ' TimerTrigger'
340+ branch " master"
341+ }
342+ }
343+ steps {
344+ sh '''
345+ oci os object put --namespace=weblogick8s --bucket-name=wko-system-test-files --config-file=/dev/null --auth=instance_principal --force --file=installer/target/imagetool.zip --name=imagetool-master.zip
346+ '''
347+ }
348+ }
349+ }
116350}
0 commit comments