diff --git a/Jenkinsfile b/Jenkinsfile index 6f1f17031b..e7d9257706 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -430,7 +430,7 @@ def uploadPackages(platformNames){ } def runInsideDocker(platform, imageName, closure){ - node('docker20'){ + node('docker'){ cleanWs() def image; stage("Build Image ${platform}"){ @@ -466,7 +466,7 @@ try{ properties([disableConcurrentBuilds()]) def parallelBuilderPlatforms = ['Linux-x86_64', 'Darwin-x86_64', 'Windows-x86_64', 'Darwin-arm64'] - def platforms = parallelBuilderPlatforms // + ['Linux-aarch64', 'Linux-armv7l'] + def platforms = parallelBuilderPlatforms + ['Linux-aarch64', 'Linux-armv7l'] def builders = [:] def dockerBuilders = [:] def testsOnMainBranch = [:] @@ -475,6 +475,40 @@ try{ runUnitTests('Darwin-x86_64') } + dockerBuilders['Linux-aarch64'] = { + buildUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter") + + // If we are not in the main branch we want to run the tests as fast as possible + if(!isMainBranch()){ + runTestsUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter", "Kernel.*|Zinc.*", false) + }else{ + testsOnMainBranch['Linux-aarch64'] = { + runTestsUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter", "Kernel.*|Zinc.*", false) + } + } + + if(isMainBranch()){ + buildUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter", false) + } + } + + dockerBuilders['Linux-armv7l'] = { + buildUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter") + + // If we are not in the main branch we want to run the tests as fast as possible + if(!isMainBranch()){ + runTestsUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter", "Kernel.*|Zinc.*", false) + }else{ + testsOnMainBranch['Linux-armv7l'] = { + runTestsUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter", "Kernel.*|Zinc.*", false) + } + } + + if(isMainBranch()){ + buildUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter", false) + } + } + for (platf in parallelBuilderPlatforms) { // Need to bind the label variable before the closure - can't do 'for (label in labels)' def platform = platf @@ -484,6 +518,12 @@ try{ timeout(40){ runBuild(platform, "CoInterpreter") } + + if(platform == 'Linux-x86_64'){ + // As the docker builders depends on the linux build, I will launch it when it end. + parallel dockerBuilders + } + // If we are not in the main branch we want to run the tests as fast as possible if(!isMainBranch()){ timeout(45){ @@ -520,45 +560,7 @@ try{ } } - /* - dockerBuilders['Linux-aarch64'] = { - buildUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter") - - // If we are not in the main branch we want to run the tests as fast as possible - if(!isMainBranch()){ - runTestsUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter", "Kernel.*|Zinc.*", false) - }else{ - testsOnMainBranch['Linux-aarch64'] = { - runTestsUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter", "Kernel.*|Zinc.*", false) - } - } - - if(isMainBranch()){ - buildUsingDocker('Linux-aarch64', 'ubuntu-arm64', "CoInterpreter", false) - } - } - - dockerBuilders['Linux-armv7l'] = { - buildUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter") - - // If we are not in the main branch we want to run the tests as fast as possible - if(!isMainBranch()){ - runTestsUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter", "Kernel.*|Zinc.*", false) - }else{ - testsOnMainBranch['Linux-armv7l'] = { - runTestsUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter", "Kernel.*|Zinc.*", false) - } - } - - if(isMainBranch()){ - buildUsingDocker('Linux-armv7l', 'debian10-armv7', "CoInterpreter", false) - } - } - */ - parallel builders - - parallel dockerBuilders uploadPackages(platforms) diff --git a/docker/ubuntu-arm64/Dockerfile b/docker/ubuntu-arm64/Dockerfile index baf18fdf41..f6cc432f50 100644 --- a/docker/ubuntu-arm64/Dockerfile +++ b/docker/ubuntu-arm64/Dockerfile @@ -20,8 +20,10 @@ RUN set -eu; \ libssl-dev \ libtool \ automake \ + adduser \ ; \ apt-get clean; \ + userdel ubuntu; \ addgroup --gid 1000 ci; \ useradd --uid 7431 --gid 1000 --home-dir /opt/pharo --no-create-home --no-user-group pharo; \ chown 7431:100 /opt/pharo -R; \