Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ stages:
- container
- container:boot

default:
.default-retry:
retry:
max: 2
when:
Expand Down
26 changes: 20 additions & 6 deletions .gitlab/ci/container-boot.gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
.container:boot:
extends:
- .dind
- .default-retry
tags:
- c0-$PLATFORM
stage: container:boot
image: ghcr.io/code0-tech/build-images/reticulum-builder:207.1-ruby-3.2.2
image: ghcr.io/code0-tech/build-images/reticulum-builder:227.1-ruby-3.4.7-$PLATFORM
variables:
COMPOSE_FILE: support/docker-compose.yml
parallel:
matrix:
- PLATFORM:
- amd64
- arm64

.container:boot:sagittarius:
extends:
- .container:boot
needs:
- container:sagittarius
- manifest:sagittarius
parallel:
matrix:
- SAGITTARIUS_VARIANT:
- ce
- ee
PLATFORM:
- amd64
- arm64
before_script:
- docker compose up postgres -d
- docker compose up sagittarius-$SAGITTARIUS_SERVICE -d
Expand Down Expand Up @@ -46,8 +57,8 @@ container:boot:aquila:
extends:
- .container:boot
needs:
- container:aquila
- container:sagittarius
- manifest:aquila
- manifest:sagittarius
variables:
SAGITTARIUS_VARIANT: ce
script:
Expand All @@ -67,7 +78,7 @@ container:boot:taurus:
extends:
- .container:boot
needs:
- container:taurus
- manifest:taurus
script:
- bundle install
- docker compose up nats -d
Expand All @@ -80,11 +91,14 @@ container:boot:draco:
extends:
- .container:boot
needs:
- container:draco
- manifest:draco
parallel:
matrix:
- DRACO_VARIANT:
- rest
PLATFORM:
- amd64
- arm64
script:
- bundle install
- docker compose up nats -d
Expand Down
140 changes: 122 additions & 18 deletions .gitlab/ci/container-build.gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
.image-build-base:
extends:
- .dind
image: ghcr.io/code0-tech/build-images/reticulum-builder:207.1-ruby-3.2.2
- .default-retry
tags:
- c0-$PLATFORM
image: ghcr.io/code0-tech/build-images/reticulum-builder:227.1-ruby-3.4.7-$PLATFORM
stage: container
script:
before_script:
- source support/helpers.sh
- docker_login
- docker_setup_builder
- 'image=$(echo "$CI_JOB_NAME" | cut -d : -f 2)'
- '[ -z "$NEED_PROJECT_DOWNLOAD" ] || download_project $image'
retry:
Expand All @@ -15,81 +19,181 @@
.single-image-build-base:
extends:
- .image-build-base
parallel:
matrix:
- PLATFORM:
- amd64
- arm64
script:
- !reference [.image-build-base, script]
- build_image $image $CI_PIPELINE_ID
- push_image $image $CI_PIPELINE_ID
- >
build_image
$image
$CI_PIPELINE_ID
"--output type=registry,push-by-digest=true --metadata-file manifest-${CI_JOB_ID}.json"
""
artifacts:
paths:
- manifest-*.json
expire_in: 1 day

.variant-image-build-base:
extends:
- .image-build-base
script:
- !reference [.image-build-base, script]
- build_image $image $CI_PIPELINE_ID "--build-arg VARIANT=$VARIANT"
- image_tag=$(get_image_tag $CI_PIPELINE_ID $VARIANT)
- retag_image $image $CI_PIPELINE_ID $image_tag
- push_image $image $image_tag
- >
build_image
$image
$CI_PIPELINE_ID
"--build-arg VARIANT=$VARIANT --output type=registry,push-by-digest=true --metadata-file manifest-${CI_JOB_ID}.json"
""
artifacts:
paths:
- manifest-*.json
expire_in: 1 day

.manifest-create-base:
extends:
- .image-build-base
variables:
PLATFORM: amd64
script:
- create_manifest $image $(get_image_tag $CI_PIPELINE_ID $VARIANT)

container:mise:
extends:
- .single-image-build-base

manifest:mise:
extends:
- .manifest-create-base
needs:
- container:mise

container:rust:
extends:
- .single-image-build-base
needs:
- container:mise
- manifest:mise

manifest:rust:
extends:
- .manifest-create-base
needs:
- container:rust

container:aquila:
extends:
- .single-image-build-base
needs:
- container:rust
- manifest:rust
variables:
NEED_PROJECT_DOWNLOAD: 'true'

manifest:aquila:
extends:
- .manifest-create-base
needs:
- container:aquila

container:draco:
extends:
- .variant-image-build-base
needs:
- container:rust
- manifest:rust
variables:
NEED_PROJECT_DOWNLOAD: 'true'
parallel:
matrix:
- VARIANT:
- rest
PLATFORM:
- amd64
- arm64

manifest:draco:
extends:
- .manifest-create-base
parallel:
matrix:
- VARIANT:
- rest
needs:
- job: container:draco
parallel:
matrix:
- VARIANT: ['$[[ matrix.VARIANT ]]']
PLATFORM:
- amd64
- arm64

container:taurus:
extends:
- .single-image-build-base
needs:
- container:rust
- manifest:rust
variables:
NEED_PROJECT_DOWNLOAD: 'true'

manifest:taurus:
extends:
- .manifest-create-base
needs:
- container:taurus

container:ruby:
extends:
- .single-image-build-base
needs:
- container:mise
- manifest:mise

manifest:ruby:
extends:
- .manifest-create-base
needs:
- container:ruby

container:postgresql:
extends:
- .single-image-build-base
needs:
- container:mise
- manifest:mise

manifest:postgresql:
extends:
- .manifest-create-base
needs:
- container:postgresql

container:sagittarius:
extends:
- .variant-image-build-base
needs:
- container:ruby
- container:postgresql
- manifest:ruby
- manifest:postgresql
variables:
NEED_PROJECT_DOWNLOAD: 'true'
parallel:
matrix:
- VARIANT:
- ce
- ee
PLATFORM:
- amd64
- arm64

manifest:sagittarius:
extends:
- .manifest-create-base
parallel:
matrix:
- VARIANT:
- ce
- ee
needs:
- job: container:sagittarius
parallel:
matrix:
- VARIANT: [ '$[[ matrix.VARIANT ]]' ]
PLATFORM:
- amd64
- arm64
6 changes: 4 additions & 2 deletions container/ruby/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ ARG RETICULUM_IMAGE_TAG=local

FROM ghcr.io/code0-tech/reticulum/ci-builds/mise:$RETICULUM_IMAGE_TAG

ARG RUBY_VERSION=3.2.2
ARG RUBY_VERSION=3.4.7

RUN apk add --update --no-cache build-base tzdata zlib-dev perl linux-headers libffi readline yaml-dev
RUN mise install-into ruby@$RUBY_VERSION /usr/local/share/ruby
COPY container/ruby/patches /ruby-patches
ENV MISE_RUBY_APPLY_PATCHES=/ruby-patches/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch
RUN mise install-into ruby@$RUBY_VERSION /usr/local/share/ruby; exit_code=$?; rm -rf /ruby-patches; [ $exit_code -ne 0 ] && tail -n 500 /tmp/ruby-build.*.log; exit $exit_code
ENV PATH=/usr/local/share/ruby/bin:$PATH
Loading