1
1
pipeline {
2
2
environment {
3
- ORO_BASELINE_VERSION = ' 5.1-latest'
4
- ORO_BEHAT_OPTIONS = ' --skip-isolators'
5
- ORO_BEHAT_TAGS = ' @e2esmokeci'
3
+ ORO_BASELINE_VERSION = ' master-latest'
4
+ ORO_BEHAT_OPTIONS = ' --skip-isolators --tags=@e2esmokeci'
6
5
}
7
6
agent {
8
7
node {
@@ -34,11 +33,15 @@ pipeline {
34
33
}
35
34
defaultVariables = readProperties(interpolate : true , file : " $WORKSPACE /.build/docker-compose/.env" )
36
35
readProperties(interpolate : true , defaults : defaultVariables + [ORO_IMAGE_TAG : env. BUILD_TAG ], file : " $WORKSPACE /.env-build" ). each {key , value -> env[key] = value }
37
- dockerLabels = [' --label "org.opencontainers.image.title=commerce-crm application"' , ' --label "org.opencontainers.image.description=commerce-crm application"' , ' --label "org.opencontainers.image.authors=ORO Inc."' , ' --label "org.opencontainers.image.vendor=ORO Inc."' , " --label \" org.opencontainers.image.revision=${ GIT_COMMIT} \" " , " --label \" org.opencontainers.image.source=${ env.GIT_URL} \" " , " --label \" org.opencontainers.image.created=${ env.BUILD_TIMESTAMP} \" " , " --label \" com.oroinc.orocloud.reference=${ env.GIT_BRANCH} \" " , ' --label "com.oroinc.orocloud.composer=dev.json"' ]
36
+ dockerLabels = [' --label "org.opencontainers.image.title=OroCommerce Application"' , ' --label "org.opencontainers.image.description=OroCommerce Application"' , ' --label "org.opencontainers.image.authors=ORO Inc."' , ' --label "org.opencontainers.image.vendor=ORO Inc."' , " --label \" org.opencontainers.image.revision=${ GIT_COMMIT} \" " ," --label \" org.opencontainers.image.source=${ env.GIT_URL} \" " , " --label \" org.opencontainers.image.created=${ env.BUILD_TIMESTAMP} \" " , " --label \" com.oroinc.orocloud.reference=${ env.GIT_BRANCH} \" " , ' --label "com.oroinc.orocloud.composer=composer.json"' ]
37
+ if (env. TAG_NAME ) { dockerLabels. add(" --label \" org.opencontainers.image.version=${ env.TAG_NAME} \" " ) }
38
+
38
39
sh '''
39
40
printenv | sort
40
41
rm -rf $WORKSPACE/../$BUILD_TAG ||:
41
42
cp -rf $WORKSPACE $WORKSPACE/../$BUILD_TAG
43
+ docker builder use default
44
+ docker builder ls
42
45
'''
43
46
}
44
47
}
@@ -54,7 +57,9 @@ pipeline {
54
57
}
55
58
stage(' Build:prod:image' ) {
56
59
steps {
57
- sh " docker buildx build --pull --load --rm ${ dockerLabels.join(' ')} --build-arg ORO_BASELINE_VERSION -t \$ {ORO_IMAGE,,}:$ORO_IMAGE_TAG -f '.build/docker/Dockerfile' . "
60
+ sh """
61
+ docker buildx build --pull --load --rm ${ dockerLabels.join(' ')} --build-arg ORO_BASELINE_VERSION -t \$ {ORO_IMAGE,,}:$ORO_IMAGE_TAG -f ".build/docker/Dockerfile" .
62
+ """
58
63
}
59
64
}
60
65
stage(' Build:prod:install:de' ) {
@@ -70,7 +75,7 @@ pipeline {
70
75
rm -rf .build/docker/private_storage
71
76
docker cp prod_${EXECUTOR_NUMBER}-install-1:/var/www/oro/public/media/ .build/docker/public_storage
72
77
docker cp prod_${EXECUTOR_NUMBER}-install-1:/var/www/oro/var/data/ .build/docker/private_storage
73
- ORO_IMAGE_INIT=${ORO_IMAGE_INIT,,}-de DB_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' prod_${EXECUTOR_NUMBER}-db-1) docker compose -p prod_${EXECUTOR_NUMBER} --project-directory .build/docker-compose -f .build/docker-compose/compose-orocommerce-application.yaml up -- build --quiet-pull --exit-code-from backup backup
78
+ ORO_IMAGE_INIT=${ORO_IMAGE_INIT,,}-de DB_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' prod_${EXECUTOR_NUMBER}-db-1) docker compose -p prod_${EXECUTOR_NUMBER} --project-directory .build/docker-compose -f .build/docker-compose/compose-orocommerce-application.yaml build backup
74
79
'''
75
80
}
76
81
}
@@ -87,7 +92,7 @@ pipeline {
87
92
rm -rf .build/docker/private_storage
88
93
docker cp prod_${EXECUTOR_NUMBER}-install-1:/var/www/oro/public/media/ .build/docker/public_storage
89
94
docker cp prod_${EXECUTOR_NUMBER}-install-1:/var/www/oro/var/data/ .build/docker/private_storage
90
- ORO_IMAGE_INIT=${ORO_IMAGE_INIT,,}-fr DB_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' prod_${EXECUTOR_NUMBER}-db-1) docker compose -p prod_${EXECUTOR_NUMBER} --project-directory .build/docker-compose -f .build/docker-compose/compose-orocommerce-application.yaml up -- build --quiet-pull --exit-code-from backup backup
95
+ ORO_IMAGE_INIT=${ORO_IMAGE_INIT,,}-fr DB_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' prod_${EXECUTOR_NUMBER}-db-1) docker compose -p prod_${EXECUTOR_NUMBER} --project-directory .build/docker-compose -f .build/docker-compose/compose-orocommerce-application.yaml build backup
91
96
'''
92
97
}
93
98
}
@@ -129,7 +134,9 @@ pipeline {
129
134
stage(' Build:test:image' ) {
130
135
steps {
131
136
dir(" $WORKSPACE /../$BUILD_TAG " ) {
132
- sh " docker buildx build --pull --load --rm ${ dockerLabels.join(' ')} --build-arg ORO_BASELINE_VERSION -t \$ {ORO_IMAGE_TEST,,}:$ORO_IMAGE_TAG -f '.build/docker/Dockerfile-test' . "
137
+ sh """
138
+ docker buildx build --pull --load --rm ${ dockerLabels.join(' ')} --label "com.oroinc.orocloud.image_type=test" --build-arg ORO_BASELINE_VERSION -t \$ {ORO_IMAGE_TEST,,}:$ORO_IMAGE_TAG -f ".build/docker/Dockerfile-test" .
139
+ """
133
140
}
134
141
}
135
142
}
@@ -149,18 +156,18 @@ pipeline {
149
156
}
150
157
}
151
158
}
152
- // stage('Build:test:functional') {
153
- // environment {
154
- // ORO_FUNCTIONAL_ARGS = ' '
155
- // }
156
- // steps {
157
- // dir("$WORKSPACE/../$BUILD_TAG") {
158
- // sh '''
159
- // docker compose -p test_${EXECUTOR_NUMBER} --project-directory .build/docker-compose -f .build/docker-compose/compose-orocommerce-application.yaml up --quiet-pull --exit-code-from functional functional
160
- // '''
161
- // }
162
- // }
163
- // }
159
+ stage(' Build:test:functional' ) {
160
+ environment {
161
+ ORO_FUNCTIONAL_ARGS = ' src '
162
+ }
163
+ steps {
164
+ dir(" $WORKSPACE /../$BUILD_TAG " ) {
165
+ sh '''
166
+ docker compose -p test_${EXECUTOR_NUMBER} --project-directory .build/docker-compose -f .build/docker-compose/compose-orocommerce-application.yaml up --quiet-pull --exit-code-from functional functional
167
+ '''
168
+ }
169
+ }
170
+ }
164
171
}
165
172
}
166
173
}
@@ -175,30 +182,60 @@ pipeline {
175
182
// '''
176
183
// }
177
184
// }
178
- stage(' Push' ) {
179
- // environment {
180
- // KEY_FILE = credentials('jenkins_oro-product-development_iam_gserviceaccount_com')
181
- // configuration = 'oro-product-development '
182
- // credentials = "--configuration ${configuration}"
183
- // }
185
+ stage(' Push Cloud release tag ' ) {
186
+ environment {
187
+ ORO_CLOUD_DOCKER_PROJECT = ' harborio.oro.cloud '
188
+ ORO_CLOUD_DOCKER_PROJECT_FOLDER = ' public-dev-ci '
189
+ ORO_REGISTRY_CREDS = credentials( ' harborio.oro.cloud ' )
190
+ }
184
191
steps {
185
- // gcloud config configurations list | grep ^${configuration} -q || gcloud config configurations create ${configuration}
186
- // gcloud config configurations activate ${configuration}
187
- // gcloud -q ${credentials} auth activate-service-account --key-file "$KEY_FILE" --project ${configuration}
188
- // gcloud ${credentials} auth configure-docker
189
- // set -x
190
192
sh '''
193
+ echo $ORO_REGISTRY_CREDS_PSW | docker login -u $ORO_REGISTRY_CREDS_USR --password-stdin $ORO_CLOUD_DOCKER_PROJECT
194
+ docker image tag ${ORO_IMAGE,,}:$ORO_IMAGE_TAG $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application:${TAG_NAME,,}
195
+ docker image tag ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application-init:${TAG_NAME,,}
196
+ docker image tag ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application-init-fr:${TAG_NAME,,}
197
+ docker image tag ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application-init-de:${TAG_NAME,,}
198
+ docker image push $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application:${TAG_NAME,,}
199
+ docker image push $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application-init:${TAG_NAME,,}
200
+ docker image push $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application-init-fr:${TAG_NAME,,}
201
+ docker image push $ORO_CLOUD_DOCKER_PROJECT/$ORO_CLOUD_DOCKER_PROJECT_FOLDER/orocommerce-application-init-de:${TAG_NAME,,}
202
+ '''
203
+ }
204
+ when {
205
+ buildingTag()
206
+ }
207
+ }
208
+ stage(' Push to CI' ) {
209
+ environment {
210
+ KEY_FILE = credentials(' jenkins_oro-product-development_iam_gserviceaccount_com' )
211
+ configuration = ' oro-product-development'
212
+ credentials = " --configuration ${ configuration} "
213
+ }
214
+ steps {
215
+ sh '''
216
+ gcloud config configurations list | grep ^${configuration} -q || gcloud config configurations create ${configuration}
217
+ gcloud config configurations activate ${configuration}
218
+ gcloud -q ${credentials} auth activate-service-account --key-file "$KEY_FILE" --project ${configuration}
219
+ gcloud ${credentials} auth configure-docker
220
+ set -x
191
221
docker image ls ${ORO_IMAGE}*
222
+ docker image push ${ORO_IMAGE,,}:$ORO_IMAGE_TAG
223
+ docker image push ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG
224
+ docker image push ${ORO_IMAGE_INIT,,}-fr:$ORO_IMAGE_TAG
225
+ docker image push ${ORO_IMAGE_INIT,,}-de:$ORO_IMAGE_TAG
226
+ docker image push ${ORO_IMAGE_TEST,,}:$ORO_IMAGE_TAG
227
+ docker image push ${ORO_IMAGE_INIT_TEST,,}:$ORO_IMAGE_TAG
228
+ docker image rm -f ${ORO_IMAGE,,}:$ORO_IMAGE_TAG ||:
229
+ docker image rm -f ${ORO_IMAGE,,}-fr:$ORO_IMAGE_TAG ||:
230
+ docker image rm -f ${ORO_IMAGE,,}-de:$ORO_IMAGE_TAG ||:
231
+ docker image rm -f ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG ||:
232
+ docker image rm -f ${ORO_IMAGE_TEST,,}:$ORO_IMAGE_TAG ||:
233
+ docker image rm -f ${ORO_IMAGE_INIT_TEST,,}:$ORO_IMAGE_TAG ||:
234
+ docker image prune -f
192
235
'''
193
- // docker image push ${ORO_IMAGE,,}:$ORO_IMAGE_TAG
194
- // docker image push ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG
195
- // docker image push ${ORO_IMAGE_TEST,,}:$ORO_IMAGE_TAG
196
- // docker image push ${ORO_IMAGE_INIT_TEST,,}:$ORO_IMAGE_TAG
197
- // docker image rm -f ${ORO_IMAGE,,}:$ORO_IMAGE_TAG ||:
198
- // docker image rm -f ${ORO_IMAGE_INIT,,}:$ORO_IMAGE_TAG ||:
199
- // docker image rm -f ${ORO_IMAGE_TEST,,}:$ORO_IMAGE_TAG ||:
200
- // docker image rm -f ${ORO_IMAGE_INIT_TEST,,}:$ORO_IMAGE_TAG ||:
201
- // docker image prune -f
236
+ }
237
+ when {
238
+ environment name : ' PUSH_TO' , value : ' us.gcr.io/oro-product-development'
202
239
}
203
240
}
204
241
}
@@ -227,9 +264,9 @@ pipeline {
227
264
script {
228
265
def issuesList = []
229
266
discoverReferenceBuild referenceJob : env. JOB_NAME
230
- // issuesList.add(scanForIssues([blameDisabled: true, forensicsDisabled: true, tool: pmdParser(name: 'PHP MD', pattern: 'logs/**/static_analysis/phpmd*.xml')]))
231
- issuesList. add(scanForIssues([blameDisabled : true , forensicsDisabled : true , tool : phpCodeSniffer(name : ' PHP Code Sniffer' , pattern : ' logs/**/static_analysis/phpcs*.xml' )]))
232
267
issuesList. add(scanForIssues([blameDisabled : true , forensicsDisabled : true , tool : checkStyle(name : ' PHP CS Fixer' , pattern : ' logs/**/static_analysis/php-cs-fixer*.xml' )]))
268
+ issuesList. add(scanForIssues([blameDisabled : true , forensicsDisabled : true , tool : phpCodeSniffer(name : ' PHP Code Sniffer' , pattern : ' logs/**/static_analysis/phpcs*.xml' )]))
269
+ issuesList. add(scanForIssues([blameDisabled : true , forensicsDisabled : true , tool : pmdParser(name : ' PHP MD' , pattern : ' logs/**/static_analysis/phpmd*.xml' )]))
233
270
publishIssues issues : issuesList, skipPublishingChecks : true
234
271
}
235
272
}
0 commit comments