@@ -25,6 +25,8 @@ import groovy.transform.Field
2525// Record coverage details for reporting
2626@Field coverage_details = [' coverage' : ' Code coverage job did not run' ]
2727
28+ 29+
2830def gen_simple_windows_jobs (label , script ) {
2931 def jobs = [:]
3032
@@ -163,7 +165,6 @@ def gen_all_sh_jobs(platform, component, label_prefix='') {
163165 def use_docker = platform_has_docker(platform)
164166 def extra_setup_code = ' '
165167 def node_label = node_label_for_platform(platform)
166- 167168
168169 if (platform_lacks_tls_tools(platform)) {
169170 /* The check_tools function in all.sh insists on the existence of the
@@ -621,6 +622,9 @@ def gen_dockerfile_builder_job(platform, overwrite=false) {
621622 def dockerfile = libraryResource " docker_files/$platform /Dockerfile"
622623
623624 def tag = " $platform -${ common.git_hash_object(dockerfile)} "
625+ def check_docker_image = " aws ecr describe-images --repository-name $common . docker_repo_name --image-ids imageTag=$tag "
626+ def check_docker_image_open_ci = " docker manifest inspect $common . docker_repo :$tag > /dev/null 2>&1"
627+
624628 common. docker_tags[platform] = tag
625629
626630 jobs[platform] = {
@@ -629,18 +633,38 @@ def gen_dockerfile_builder_job(platform, overwrite=false) {
629633 node(' dockerfile-builder' ) {
630634 def image_exists = false
631635 if (! overwrite) {
632- def test_image_exists_sh = " aws ecr describe-images --repository-name $ common . docker_repo_name --image-ids imageTag= $t ag "
636+ def test_image_exists_sh = common. is_open_ci_env ? check_docker_image_open_ci : check_docker_image
633637 image_exists = sh(script : test_image_exists_sh, returnStatus : true ) == 0
634638 }
635639 if (overwrite || ! image_exists) {
636640 dir(' docker' ) {
637641 deleteDir()
638642 writeFile file : ' Dockerfile' , text : dockerfile
639- sh """ \
643+ if (common. is_open_ci_env) {
644+ withCredentials([string(credentialsId : ' DOCKER_AUTH' , variable : ' TOKEN' )]) {
645+ sh """ \
646+ mkdir -p ${ env.HOME} /.docker
647+ cat > ${ env.HOME} /.docker/config.json << EOF
648+ {
649+ "auths": {
650+ "https://index.docker.io/v1/": {
651+ "auth": '${ TOKEN} '
652+ }
653+ }
654+ }
655+ EOF
656+ chmod 0600 ${ env.HOME} /.docker/config.json
657+ docker build --build-arg ARMLMD_LICENSE_FILE=$armlmd_license_file -t $common . docker_repo :$tag .
658+ docker push $common . docker_repo :$tag
659+ """
660+ }
661+ } else {
662+ sh """ \
640663docker build -t $common . docker_repo :$tag .
641664aws ecr get-login-password | docker login --username AWS --password-stdin $common . docker_ecr
642665docker push $common . docker_repo :$tag
643666"""
667+ }
644668 }
645669 }
646670 }
0 commit comments