From 444a47101a7ec379f768e584c007a2c44d4247a9 Mon Sep 17 00:00:00 2001 From: Niklas van Schrick Date: Wed, 20 Aug 2025 17:42:14 +0200 Subject: [PATCH 1/2] Move from scripts to support --- .gitlab/ci/container-boot.gitlab-ci.yml | 10 +++++----- .gitlab/ci/container-build.gitlab-ci.yml | 2 +- {scripts => support}/download_projects | 0 {scripts => support}/grpc_check_health | 0 {scripts => support}/helpers.sh | 0 5 files changed, 6 insertions(+), 6 deletions(-) rename {scripts => support}/download_projects (100%) rename {scripts => support}/grpc_check_health (100%) mode change 100755 => 100644 rename {scripts => support}/helpers.sh (100%) diff --git a/.gitlab/ci/container-boot.gitlab-ci.yml b/.gitlab/ci/container-boot.gitlab-ci.yml index 9ef14a1..a1d6e09 100644 --- a/.gitlab/ci/container-boot.gitlab-ci.yml +++ b/.gitlab/ci/container-boot.gitlab-ci.yml @@ -77,8 +77,8 @@ container:boot:sagittarius:grpc: - bundle install - !reference [.container:boot:sagittarius, before_script] script: - - scripts/grpc_check_health --host docker:50051 --service liveness --retries 20 - - scripts/grpc_check_health --host docker:50051 --service readiness --retries 20 + - support/grpc_check_health --host docker:50051 --service liveness --retries 20 + - support/grpc_check_health --host docker:50051 --service readiness --retries 20 container:boot:aquila: extends: @@ -124,7 +124,7 @@ container:boot:aquila: bin/grpc_server - docker ps --all - docker logs -f sagittarius & - - scripts/grpc_check_health --host docker:50051 --service readiness --retries 20 + - support/grpc_check_health --host docker:50051 --service readiness --retries 20 - > docker run --detach @@ -139,5 +139,5 @@ container:boot:aquila: --publish 8081:8081 $AQUILA_IMAGE - docker logs -f aquila & - - scripts/grpc_check_health --host docker:8081 --service liveness --retries 20 - - scripts/grpc_check_health --host docker:8081 --service readiness --retries 20 + - support/grpc_check_health --host docker:8081 --service liveness --retries 20 + - support/grpc_check_health --host docker:8081 --service readiness --retries 20 diff --git a/.gitlab/ci/container-build.gitlab-ci.yml b/.gitlab/ci/container-build.gitlab-ci.yml index 188926d..9ebe9c3 100644 --- a/.gitlab/ci/container-build.gitlab-ci.yml +++ b/.gitlab/ci/container-build.gitlab-ci.yml @@ -4,7 +4,7 @@ image: ghcr.io/code0-tech/build-images/reticulum-builder:177.1-ruby-3.2.2 stage: container script: - - source scripts/helpers.sh + - source support/helpers.sh - docker_login - 'image=$(echo "$CI_JOB_NAME" | cut -d : -f 2)' - '[ -z "$NEED_PROJECT_DOWNLOAD" ] || download_project $image' diff --git a/scripts/download_projects b/support/download_projects similarity index 100% rename from scripts/download_projects rename to support/download_projects diff --git a/scripts/grpc_check_health b/support/grpc_check_health old mode 100755 new mode 100644 similarity index 100% rename from scripts/grpc_check_health rename to support/grpc_check_health diff --git a/scripts/helpers.sh b/support/helpers.sh similarity index 100% rename from scripts/helpers.sh rename to support/helpers.sh From b7f3e16d38290f8350db4ce0d612366dc55ec05a Mon Sep 17 00:00:00 2001 From: Niklas van Schrick Date: Wed, 20 Aug 2025 18:38:02 +0200 Subject: [PATCH 2/2] Refactor boot tests into docker compose --- .gitlab/ci/container-boot.gitlab-ci.yml | 105 +++--------------------- support/docker-compose.yml | 67 +++++++++++++++ support/grpc_check_health | 0 3 files changed, 80 insertions(+), 92 deletions(-) create mode 100644 support/docker-compose.yml mode change 100644 => 100755 support/grpc_check_health diff --git a/.gitlab/ci/container-boot.gitlab-ci.yml b/.gitlab/ci/container-boot.gitlab-ci.yml index a1d6e09..16253ac 100644 --- a/.gitlab/ci/container-boot.gitlab-ci.yml +++ b/.gitlab/ci/container-boot.gitlab-ci.yml @@ -4,9 +4,7 @@ stage: container:boot image: ghcr.io/code0-tech/build-images/reticulum-builder:177.1-ruby-3.2.2 variables: - RETICULUM_IMAGE_BASE: ghcr.io/code0-tech/reticulum/ci-builds - SAGITTARIUS_IMAGE: $RETICULUM_IMAGE_BASE/sagittarius:${CI_PIPELINE_ID}-${SAGITTARIUS_VARIANT} - AQUILA_IMAGE: $RETICULUM_IMAGE_BASE/aquila:${CI_PIPELINE_ID} + COMPOSE_FILE: support/docker-compose.yml .container:boot:sagittarius: extends: @@ -18,61 +16,25 @@ - SAGITTARIUS_VARIANT: - ce - ee - variables: - CURL_IMAGE: curlimages/curl:8.5.0 - DOCKER_ARGS: "" before_script: - - docker network create boot - - > - docker run - --detach - --name postgres - --network boot - --network-alias postgres - --env POSTGRES_USER=sagittarius - --env POSTGRES_PASSWORD=sagittarius - --env POSTGRES_DB=sagittarius_production - postgres:16.1 - - docker pull $SAGITTARIUS_IMAGE - - docker pull $CURL_IMAGE - - > - docker run - --detach - --name sagittarius - --network boot - --network-alias sagittarius - --volume $(pwd)/container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml - $DOCKER_ARGS - $SAGITTARIUS_IMAGE - $SAGITTARIUS_CMD + - docker compose up postgres -d + - docker compose up sagittarius-$SAGITTARIUS_SERVICE -d - docker ps --all - - docker logs -f sagittarius & + - docker compose logs sagittarius-$SAGITTARIUS_SERVICE -f & container:boot:sagittarius:rails-web: extends: - .container:boot:sagittarius variables: - SAGITTARIUS_CMD: "" + SAGITTARIUS_SERVICE: rails-web script: - - > - docker run - --rm - --network boot - $CURL_IMAGE - curl - --fail - -sv - --retry 20 - --retry-delay 3 - --retry-connrefused - http://sagittarius:3000/health/liveness + - docker compose run curl-sagittarius-rails-web container:boot:sagittarius:grpc: extends: - .container:boot:sagittarius variables: - SAGITTARIUS_CMD: "bin/grpc_server" - DOCKER_ARGS: "--publish 50051:50051 --env SAGITTARIUS_PREPARE_DATABASE=true" + SAGITTARIUS_SERVICE: grpc before_script: - bundle install - !reference [.container:boot:sagittarius, before_script] @@ -90,54 +52,13 @@ container:boot:aquila: SAGITTARIUS_VARIANT: ce script: - bundle install - - docker network create boot - - > - docker run - --detach - --name postgres - --network boot - --network-alias postgres - --env POSTGRES_USER=sagittarius - --env POSTGRES_PASSWORD=sagittarius - --env POSTGRES_DB=sagittarius_production - postgres:16.1 - - > - docker run - --detach - --name nats - --network boot - --network-alias nats - nats:2.11.8 - -js - - docker pull $SAGITTARIUS_IMAGE - - docker pull $AQUILA_IMAGE - - > - docker run - --detach - --name sagittarius - --network boot - --network-alias sagittarius - --volume $(pwd)/container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml - --env SAGITTARIUS_PREPARE_DATABASE=true - --publish 50051:50051 - $SAGITTARIUS_IMAGE - bin/grpc_server + - docker compose up postgres -d + - docker compose up nats -d + - docker compose up sagittarius-grpc -d - docker ps --all - - docker logs -f sagittarius & + - docker compose logs sagittarius-grpc -f & - support/grpc_check_health --host docker:50051 --service readiness --retries 20 - - > - docker run - --detach - --name aquila - --network boot - --network-alias aquila - --env NATS_URL=nats://nats:4222 - --env MODE=dynamic - --env WITH_HEALTH_SERVICE=true - --env GRPC_HOST=0.0.0.0 - --env SAGITTARIUS_URL=http://sagittarius:50051 - --publish 8081:8081 - $AQUILA_IMAGE - - docker logs -f aquila & + - docker compose up aquila -d + - docker compose logs aquila -f & - support/grpc_check_health --host docker:8081 --service liveness --retries 20 - support/grpc_check_health --host docker:8081 --service readiness --retries 20 diff --git a/support/docker-compose.yml b/support/docker-compose.yml new file mode 100644 index 0000000..c80ff7a --- /dev/null +++ b/support/docker-compose.yml @@ -0,0 +1,67 @@ +services: + postgres: + image: postgres:16.1 + networks: + - boot + environment: + POSTGRES_USER: sagittarius + POSTGRES_PASSWORD: sagittarius + POSTGRES_DB: sagittarius_production + + sagittarius-rails-web: + image: ghcr.io/code0-tech/reticulum/ci-builds/sagittarius:${CI_PIPELINE_ID}-${SAGITTARIUS_VARIANT} + networks: + - boot + volumes: + - ../container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml + + curl-sagittarius-rails-web: + image: curlimages/curl:8.5.0 + networks: + - boot + command: + - curl + - --fail + - -sv + - --retry + - "20" + - --retry-delay + - "3" + - --retry-connrefused + - http://sagittarius-rails-web:3000/health/liveness + + sagittarius-grpc: + image: ghcr.io/code0-tech/reticulum/ci-builds/sagittarius:${CI_PIPELINE_ID}-${SAGITTARIUS_VARIANT} + networks: + - boot + volumes: + - ../container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml + command: + - bin/grpc_server + environment: + SAGITTARIUS_PREPARE_DATABASE: "true" + ports: + - "50051:50051" + + nats: + image: nats:2.11.8 + networks: + - boot + command: + - -js + + aquila: + image: ghcr.io/code0-tech/reticulum/ci-builds/aquila:${CI_PIPELINE_ID} + networks: + - boot + environment: + NATS_URL: nats://nats:4222 + MODE: dynamic + WITH_HEALTH_SERVICE: "true" + GRPC_HOST: 0.0.0.0 + SAGITTARIUS_URL: http://sagittarius-grpc:50051 + ports: + - "8081:8081" + +networks: + boot: diff --git a/support/grpc_check_health b/support/grpc_check_health old mode 100644 new mode 100755