From 4071da8d6743b9356327ce368958e99073d3cc1f Mon Sep 17 00:00:00 2001 From: peri4 Date: Sat, 25 Mar 2023 18:51:51 +0300 Subject: [PATCH 1/2] try migrate to "linux.json" for dockers --- Jenkinsfile | 37 ++++++++++++++----- docker/debian11-shstk/Dockerfile | 18 --------- .../Dockerfile | 5 ++- docker/ubuntu-shstk/Dockerfile | 18 --------- pip | 2 +- 5 files changed, 31 insertions(+), 49 deletions(-) delete mode 100644 docker/debian11-shstk/Dockerfile rename docker/{debian-shstk => linux_desktop-shstk}/Dockerfile (85%) delete mode 100644 docker/ubuntu-shstk/Dockerfile diff --git a/Jenkinsfile b/Jenkinsfile index 5547efe..f3175d0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,4 +1,4 @@ -def build_docker(name, release_dir) { +def build_docker(name, docker_dir, docker_image, release_dir) { def image_name = "${name}-shstk" echo "Build image ${image_name}" def pref = "" @@ -9,13 +9,17 @@ def build_docker(name, release_dir) { if (env.JOBS_COUNT) { jobs = "${env.JOBS_COUNT}" } - def args = "${pref} --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER} --build-arg JOBS_COUNT=${jobs}" - dir ("docker/${image_name}") { - sh "docker build ${args} --no-cache -t ${image_name} ." - def diargs = "-v " + release_dir + ":/soft/release" - docker.image(image_name).inside(diargs) { - sh 'cp -vf /soft/shstk/release/* /soft/release/ || true' - } + def args = "${pref}" + args += " --build-arg IMAGE_FROM=${docker_image}" + args += " --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER}" + args += " --build-arg JOBS_COUNT=${jobs}" + dir ("docker/${docker_dir}-shstk") { + //sh "docker build ${args} --no-cache -t ${image_name} ." + //def diargs = "-v " + release_dir + ":/soft/release" + //docker.image(image_name).inside(diargs) { + // sh 'cp -vf /soft/shstk/release/* /soft/release/ || true' + //} + print "docker build ${args} --no-cache -t ${image_name} ." } return "\n - ${image_name}" } @@ -38,14 +42,27 @@ node { sh "rm -rvf ${rel_dir}" sh "mkdir -p ${rel_dir}" def _msg = "Built images:" - def platforms = ['debian', 'debian11', 'osx', 'windows', 'windows32', 'android', 'pi', 'ubuntu'] + + // individual platforms + def platforms = ['osx', 'android', 'windows', 'windows32', 'pi'] for (int i = 0; i < platforms.size(); ++i) { if (_envmap["BUILD_${platforms[i]}"] == "1") { stage("${platforms[i]}-shstk") { - _msg += build_docker("${platforms[i]}", rel_dir) + _msg += build_docker("${platforms[i]}", "${platforms[i]}", "", rel_dir) } } } + + // desktop linux set + sh 'wget https://shs.tools/files/linux.json' + def root = readJSON(file: 'linux.json') + for (dist in root.Linux) { + if (dist.off) continue + stage ("${dist.system}-shstk") { + _msg += build_docker(dist.docker_image, "linux_desktop", dist.docker_image, rel_dir) + } + } + sh "docker system prune -f" archiveArtifacts 'release/*' echo "${_msg}" diff --git a/docker/debian11-shstk/Dockerfile b/docker/debian11-shstk/Dockerfile deleted file mode 100644 index 5555e28..0000000 --- a/docker/debian11-shstk/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -ARG DOCKER_PREFIX=wapmobil/ -FROM ${DOCKER_PREFIX}debian11 - -ARG LIBS_BUILD_NUMBER=9999 -ARG JOBS_COUNT=4 -ENV PATH=/opt/cmake/bin:$PATH - -WORKDIR /soft -RUN git clone -b release --single-branch --depth 1 --recursive https://git.shs.tools/SHS/shstk.git - -WORKDIR /soft/shstk_build_debian -RUN cmake -G Ninja -DICU=0 -DLOCAL=0 -DQGLENGINE=1 -DQGLVIEW=1 -DHAS_GL=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../shstk \ - && cmake --build ./ --target install -j${JOBS_COUNT} \ - && cmake --build ./ --target deploy -j${JOBS_COUNT} \ - && rm -rf * \ - && ldconfig - -WORKDIR /soft/src diff --git a/docker/debian-shstk/Dockerfile b/docker/linux_desktop-shstk/Dockerfile similarity index 85% rename from docker/debian-shstk/Dockerfile rename to docker/linux_desktop-shstk/Dockerfile index 67ce6be..43ed8a7 100644 --- a/docker/debian-shstk/Dockerfile +++ b/docker/linux_desktop-shstk/Dockerfile @@ -1,5 +1,6 @@ ARG DOCKER_PREFIX=wapmobil/ -FROM ${DOCKER_PREFIX}debian +ARG IMAGE_FROM +FROM ${DOCKER_PREFIX}${IMAGE_FROM} ARG LIBS_BUILD_NUMBER=9999 ARG JOBS_COUNT=4 @@ -8,7 +9,7 @@ ENV PATH=/opt/cmake/bin:$PATH WORKDIR /soft RUN git clone -b release --single-branch --depth 1 --recursive https://git.shs.tools/SHS/shstk.git -WORKDIR /soft/shstk_build_debian +WORKDIR /soft/shstk_build_linux RUN cmake -G Ninja -DICU=0 -DLOCAL=0 -DQGLENGINE=1 -DQGLVIEW=1 -DHAS_GL=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../shstk \ && cmake --build ./ --target install -j${JOBS_COUNT} \ && cmake --build ./ --target deploy -j${JOBS_COUNT} \ diff --git a/docker/ubuntu-shstk/Dockerfile b/docker/ubuntu-shstk/Dockerfile deleted file mode 100644 index 79aeef1..0000000 --- a/docker/ubuntu-shstk/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -ARG DOCKER_PREFIX=wapmobil/ -FROM ${DOCKER_PREFIX}ubuntu - -ARG LIBS_BUILD_NUMBER=9999 -ARG JOBS_COUNT=4 -ENV PATH=/opt/cmake/bin:$PATH - -WORKDIR /soft -RUN git clone -b release --single-branch --depth 1 --recursive https://git.shs.tools/SHS/shstk.git - -WORKDIR /soft/shstk_build_ubuntu -RUN cmake -G Ninja -DICU=0 -DLOCAL=0 -DQGLENGINE=1 -DQGLVIEW=1 -DHAS_GL=0 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../shstk \ - && cmake --build ./ --target install -j${JOBS_COUNT} \ - && cmake --build ./ --target deploy -j${JOBS_COUNT} \ - && rm -rf * \ - && ldconfig - -WORKDIR /soft/src diff --git a/pip b/pip index d66f7ef..2d1c86b 160000 --- a/pip +++ b/pip @@ -1 +1 @@ -Subproject commit d66f7efb3cc7bd303320c6491cb80b2973fcdaa5 +Subproject commit 2d1c86bc8335aedb81cdf7887920ed07c4c01c7c From 26ae6c4fbbf589b34cd324ea46f5a557581b42eb Mon Sep 17 00:00:00 2001 From: peri4 Date: Sat, 25 Mar 2023 18:53:48 +0300 Subject: [PATCH 2/2] try to build dockers --- Jenkinsfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f3175d0..fde7a8e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,12 +14,12 @@ def build_docker(name, docker_dir, docker_image, release_dir) { args += " --build-arg LIBS_BUILD_NUMBER=${env.BUILD_NUMBER}" args += " --build-arg JOBS_COUNT=${jobs}" dir ("docker/${docker_dir}-shstk") { - //sh "docker build ${args} --no-cache -t ${image_name} ." - //def diargs = "-v " + release_dir + ":/soft/release" - //docker.image(image_name).inside(diargs) { - // sh 'cp -vf /soft/shstk/release/* /soft/release/ || true' - //} - print "docker build ${args} --no-cache -t ${image_name} ." + sh "docker build ${args} --no-cache -t ${image_name} ." + def diargs = "-v " + release_dir + ":/soft/release" + docker.image(image_name).inside(diargs) { + sh 'cp -vf /soft/shstk/release/* /soft/release/ || true' + } + //print "docker build ${args} --no-cache -t ${image_name} ." } return "\n - ${image_name}" }