File tree Expand file tree Collapse file tree 5 files changed +25
-24
lines changed Expand file tree Collapse file tree 5 files changed +25
-24
lines changed Original file line number Diff line number Diff line change 22 - container
33 - container:boot
44
5- default :
5+ . default-retry :
66 retry :
77 max : 2
88 when :
Original file line number Diff line number Diff line change 11.container:boot :
22 extends :
33 - .dind
4+ - .default-retry
45 stage : container:boot
56 image : ghcr.io/code0-tech/build-images/reticulum-builder:207.1-ruby-3.2.2
67 variables :
Original file line number Diff line number Diff line change 11.image-build-base :
22 extends :
33 - .dind
4+ - .default-retry
45 image : ghcr.io/code0-tech/build-images/reticulum-builder:207.1-ruby-3.2.2
56 stage : container
7+ variables :
8+ PLATFORM_ARGS : " --platform linux/amd64,linux/arm64"
69 script :
710 - source support/helpers.sh
811 - docker_login
12+ - docker_setup_multi_arch
913 - ' image=$(echo "$CI_JOB_NAME" | cut -d : -f 2)'
1014 - ' [ -z "$NEED_PROJECT_DOWNLOAD" ] || download_project $image'
1115 retry :
1721 - .image-build-base
1822 script :
1923 - !reference [.image-build-base, script]
20- - build_image $image $CI_PIPELINE_ID
21- - push_image $image $CI_PIPELINE_ID
24+ - build_image $image $CI_PIPELINE_ID "--push"
2225
2326.variant-image-build-base :
2427 extends :
2528 - .image-build-base
2629 script :
2730 - !reference [.image-build-base, script]
28- - build_image $image $CI_PIPELINE_ID "--build-arg VARIANT=$VARIANT"
29- - image_tag=$(get_image_tag $CI_PIPELINE_ID $VARIANT)
30- - retag_image $image $CI_PIPELINE_ID $image_tag
31- - push_image $image $image_tag
31+ - build_image $image $CI_PIPELINE_ID "--build-arg VARIANT=$VARIANT --push" $(get_image_tag $CI_PIPELINE_ID $VARIANT)
3232
3333container:mise :
3434 extends :
Original file line number Diff line number Diff line change @@ -2,8 +2,8 @@ ARG RETICULUM_IMAGE_TAG=local
22
33FROM ghcr.io/code0-tech/reticulum/ci-builds/mise:$RETICULUM_IMAGE_TAG
44
5- ARG RUBY_VERSION=3.2.2
5+ ARG RUBY_VERSION=3.4.7
66
77RUN apk add --update --no-cache build-base tzdata zlib-dev perl linux-headers libffi readline yaml-dev
8- RUN mise install-into ruby@$RUBY_VERSION /usr/local/share/ruby
8+ RUN mise install-into ruby@$RUBY_VERSION /usr/local/share/ruby; exit_code=$?; [ $exit_code -ne 0 ] && tail -n 500 /tmp/ruby-build.*.log; exit $exit_code
99ENV PATH=/usr/local/share/ruby/bin:$PATH
Original file line number Diff line number Diff line change @@ -13,10 +13,22 @@ function docker_login() {
1313 echo $C0_GH_TOKEN | docker login -u $ --password-stdin ghcr.io
1414}
1515
16+ function docker_setup_multi_arch() {
17+ docker context create build-context
18+ docker buildx create \
19+ --name container-builder \
20+ --driver docker-container \
21+ --bootstrap \
22+ --use \
23+ build-context
24+ docker run --privileged --rm tonistiigi/binfmt --install all
25+ }
26+
1627function build_image() {
1728 image=$1
1829 reticulum_tag=$2
1930 build_args=$3
31+ reticulum_push_tag=${4:- $reticulum_tag }
2032
2133 echo " Building image for $image "
2234
@@ -25,27 +37,15 @@ function build_image() {
2537 container/$image /renderDockerfile
2638 fi
2739
28- docker build \
29- -t " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag " \
40+ docker buildx build \
41+ -t " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_push_tag " \
3042 -f " container/$image /Dockerfile" \
3143 --build-arg RETICULUM_IMAGE_TAG=$reticulum_tag \
3244 $build_args \
45+ $PLATFORM_ARGS \
3346 .
3447}
3548
36- function push_image() {
37- image=$1
38- reticulum_tag=$2
39- docker push " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag "
40- }
41-
42- function retag_image() {
43- image=$1
44- reticulum_tag=$2
45- variant_tag=$3
46- docker image tag " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag " " ghcr.io/code0-tech/reticulum/ci-builds/$image :$variant_tag "
47- }
48-
4949function get_image_tag() {
5050 reticulum_tag=$1
5151 reticulum_variant=$2
You can’t perform that action at this time.
0 commit comments