From 18cee729981aaf7ed9ab73884ffee99acd7a794c Mon Sep 17 00:00:00 2001 From: Carlos Date: Sun, 8 Mar 2026 09:45:22 +0100 Subject: [PATCH 1/5] Remove unused docker-compose script --- .circle/docker-compose.sh | 44 ++++++++++++---------------------- .circle/docker-compose2.sh | 49 -------------------------------------- .circleci/config.yml | 10 ++++---- 3 files changed, 20 insertions(+), 83 deletions(-) delete mode 100755 .circle/docker-compose2.sh diff --git a/.circle/docker-compose.sh b/.circle/docker-compose.sh index 6034c5a5..927a7a14 100755 --- a/.circle/docker-compose.sh +++ b/.circle/docker-compose.sh @@ -9,55 +9,41 @@ set -e # Source the build environment defintion (details in buildenv.sh) +# shellcheck disable=SC1090 . ~/.buildenv -# Used for `RABBITMQHOST`, `MONGODBHOST`, and `REDISHOST` see docker-compose.override.yml -HOST_IP=$(ifconfig docker0 | grep 'inet addr' | awk -F: '{print $2}' | awk '{print $1}') - set -x case "$1" in + # Clean up cached Docker containers from the previous CircleCI build + # With https://circleci.com/docs/2.0/docker-layer-caching/ and 'reusable: true' we may see + # containers running from the previous cached build + clean) + echo Cleaning cached Docker containers which could be there from the previous build ... + docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml rm -v --stop --force || true + ;; # Perform fake command invocation, technically provides images "pull" phase. pull) echo Pulling dependent Docker images for $2 ... - docker-compose -f docker-compose.circle.yml run \ - -e ST2_GITURL=${ST2_GITURL} \ - -e ST2_GITREV=${ST2_GITREV} \ - -e ST2PKG_VERSION=${ST2PKG_VERSION} \ - -e ST2PKG_RELEASE=${ST2PKG_RELEASE} \ - -e RABBITMQHOST=${HOST_IP} \ - -e MONGODBHOST=${HOST_IP} \ - -e REDISHOST=${HOST_IP} \ - -e ST2_CIRCLE_URL=${CIRCLE_BUILD_URL} \ - $2 /bin/true + docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml pull --include-deps $2 ;; build) echo Starting Packages Build for $2 ... - docker-compose -f docker-compose.circle.yml run \ + docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml run \ + -e ST2_CHECKOUT=${ST2_CHECKOUT} \ -e ST2_GITURL=${ST2_GITURL} \ -e ST2_GITREV=${ST2_GITREV} \ + -e ST2_GITDIR=${ST2_GITDIR} \ -e ST2PKG_VERSION=${ST2PKG_VERSION} \ -e ST2PKG_RELEASE=${ST2PKG_RELEASE} \ - -e RABBITMQHOST=${HOST_IP} \ - -e MONGODBHOST=${HOST_IP} \ - -e REDISHOST=${HOST_IP} \ -e ST2_PACKAGES="${ST2_PACKAGES}" \ - -e ST2_CIRCLE_URL=${CIRCLE_BUILD_URL} \ + -e ST2_CIRCLE_URL="${CIRCLE_BUILD_URL}" \ $2 build ;; test) [ "$TESTING" = 0 ] && { echo "Omitting Tests for $2 ..." ; exit 0; } echo Starting Tests for $2 ... - docker-compose -f docker-compose.circle.yml run \ - -e ST2_GITURL=${ST2_GITURL} \ - -e ST2_GITREV=${ST2_GITREV} \ - -e ST2PKG_VERSION=${ST2PKG_VERSION} \ - -e ST2PKG_RELEASE=${ST2PKG_RELEASE} \ - -e RABBITMQHOST=${HOST_IP} \ - -e MONGODBHOST=${HOST_IP} \ - -e REDISHOST=${HOST_IP} \ + docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml run \ -e ST2_PACKAGES="${ST2_PACKAGES}" \ - -e ST2_CIRCLE_URL=${CIRCLE_BUILD_URL} \ - $2 test + "$2" test ;; esac - diff --git a/.circle/docker-compose2.sh b/.circle/docker-compose2.sh deleted file mode 100755 index 927a7a14..00000000 --- a/.circle/docker-compose2.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# Usage: docker-compose.sh OPERATION -# This script is a st2 packages build pipeline invocation wrapper. -# -# Operations: -# pull, build and test operations are available. Which pull containers, -# build and test packages respectivly. -# - -set -e -# Source the build environment defintion (details in buildenv.sh) -# shellcheck disable=SC1090 -. ~/.buildenv - -set -x -case "$1" in - # Clean up cached Docker containers from the previous CircleCI build - # With https://circleci.com/docs/2.0/docker-layer-caching/ and 'reusable: true' we may see - # containers running from the previous cached build - clean) - echo Cleaning cached Docker containers which could be there from the previous build ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml rm -v --stop --force || true - ;; - # Perform fake command invocation, technically provides images "pull" phase. - pull) - echo Pulling dependent Docker images for $2 ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml pull --include-deps $2 - ;; - build) - echo Starting Packages Build for $2 ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml run \ - -e ST2_CHECKOUT=${ST2_CHECKOUT} \ - -e ST2_GITURL=${ST2_GITURL} \ - -e ST2_GITREV=${ST2_GITREV} \ - -e ST2_GITDIR=${ST2_GITDIR} \ - -e ST2PKG_VERSION=${ST2PKG_VERSION} \ - -e ST2PKG_RELEASE=${ST2PKG_RELEASE} \ - -e ST2_PACKAGES="${ST2_PACKAGES}" \ - -e ST2_CIRCLE_URL="${CIRCLE_BUILD_URL}" \ - $2 build - ;; - test) - [ "$TESTING" = 0 ] && { echo "Omitting Tests for $2 ..." ; exit 0; } - echo Starting Tests for $2 ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml run \ - -e ST2_PACKAGES="${ST2_PACKAGES}" \ - "$2" test - ;; -esac diff --git a/.circleci/config.yml b/.circleci/config.yml index 64dd4ed1..360fbd79 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -66,7 +66,7 @@ jobs: command: | set -x # Clean-up running containers - .circle/docker-compose2.sh clean + .circle/docker-compose.sh clean # Remove st2-packages-vol container docker rm -v --force st2-packages-vol || true # Clean-up any created volumes @@ -82,7 +82,7 @@ jobs: docker cp ~/st2-packages st2-packages-vol:/root - run: name: Pull dependent Docker Images - command: .circle/docker-compose2.sh pull ${DISTRO} || .circle/docker-compose2.sh pull ${DISTRO} + command: .circle/docker-compose.sh pull ${DISTRO} || .circle/docker-compose.sh pull ${DISTRO} - run: name: Build the ${DISTRO} Packages command: | @@ -90,13 +90,13 @@ jobs: mkdir -p ~/st2-packages/build/${DISTRO}/log/ # Run the build - .circle/docker-compose2.sh build ${DISTRO} + .circle/docker-compose.sh build ${DISTRO} # Once build container finishes we can copy packages directly from it docker cp st2-packages-vol:/root/build/. ~/st2-packages/build/${DISTRO} - run: name: Test the Packages - command: .circle/docker-compose2.sh test ${DISTRO} + command: .circle/docker-compose.sh test ${DISTRO} - run: when: always name: Grab the st2 logs @@ -118,7 +118,7 @@ jobs: command: | set -x # Clean-up running containers - .circle/docker-compose2.sh clean + .circle/docker-compose.sh clean # Remove st2-packages-vol container docker rm -v --force st2-packages-vol || true # Clean-up any created volumes From da8af2a20a5753c1b51a1b273b7ca124a7878e28 Mon Sep 17 00:00:00 2001 From: Carlos Date: Sun, 8 Mar 2026 09:47:20 +0100 Subject: [PATCH 2/5] Remove unused docker-compose circle configuration --- .circle/docker-compose.sh | 8 +- docker-compose.circle.yml | 57 +++++++------- docker-compose.circle2.yml | 150 ------------------------------------- 3 files changed, 35 insertions(+), 180 deletions(-) delete mode 100644 docker-compose.circle2.yml diff --git a/.circle/docker-compose.sh b/.circle/docker-compose.sh index 927a7a14..8e439c06 100755 --- a/.circle/docker-compose.sh +++ b/.circle/docker-compose.sh @@ -19,16 +19,16 @@ case "$1" in # containers running from the previous cached build clean) echo Cleaning cached Docker containers which could be there from the previous build ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml rm -v --stop --force || true + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml rm -v --stop --force || true ;; # Perform fake command invocation, technically provides images "pull" phase. pull) echo Pulling dependent Docker images for $2 ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml pull --include-deps $2 + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml pull --include-deps $2 ;; build) echo Starting Packages Build for $2 ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml run \ + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml run \ -e ST2_CHECKOUT=${ST2_CHECKOUT} \ -e ST2_GITURL=${ST2_GITURL} \ -e ST2_GITREV=${ST2_GITREV} \ @@ -42,7 +42,7 @@ case "$1" in test) [ "$TESTING" = 0 ] && { echo "Omitting Tests for $2 ..." ; exit 0; } echo Starting Tests for $2 ... - docker compose -f docker-compose.circle2.yml -f docker-compose.override.yml run \ + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml run \ -e ST2_PACKAGES="${ST2_PACKAGES}" \ "$2" test ;; diff --git a/docker-compose.circle.yml b/docker-compose.circle.yml index 24d6ffbc..20e63999 100644 --- a/docker-compose.circle.yml +++ b/docker-compose.circle.yml @@ -1,10 +1,11 @@ version: "3.8" + services: focal: image: quay.io/stackstorm/packagingrunner - extends: - file: docker-compose.override.yml - service: suite-compose + working_dir: /root/st2-packages + volumes_from: + - container:st2-packages-vol environment: - BUILDNODE=focalbuild - TESTNODE=focaltest @@ -18,9 +19,9 @@ services: jammy: image: quay.io/stackstorm/packagingrunner - extends: - file: docker-compose.override.yml - service: suite-compose + working_dir: /root/st2-packages + volumes_from: + - container:st2-packages-vol environment: - BUILDNODE=jammybuild - TESTNODE=jammytest @@ -34,13 +35,12 @@ services: el8: image: quay.io/stackstorm/packagingrunner - extends: - file: docker-compose.override.yml - service: suite-compose + working_dir: /root/st2-packages + volumes_from: + - container:st2-packages-vol environment: - BUILDNODE=rockylinux8build - TESTNODE=rockylinux8test - - ST2_PACKAGES=st2 links: - rockylinux8build - rockylinux8test @@ -50,13 +50,12 @@ services: el9: image: quay.io/stackstorm/packagingrunner - extends: - file: docker-compose.override.yml - service: suite-compose + working_dir: /root/st2-packages + volumes_from: + - container:st2-packages-vol environment: - BUILDNODE=rockylinux9build - TESTNODE=rockylinux9test - - ST2_PACKAGES=st2 links: - rockylinux9build - rockylinux9test @@ -69,60 +68,66 @@ services: focalbuild: image: stackstorm/packagingbuild:focal volumes_from: - - st2-packages-vol + - container:st2-packages-vol jammybuild: image: stackstorm/packagingbuild:jammy volumes_from: - - st2-packages-vol + - container:st2-packages-vol rockylinux8build: image: stackstorm/packagingbuild:rockylinux8 - extends: - file: docker-compose.override.yml - service: volumes-compose + volumes_from: + - container:st2-packages-vol rockylinux9build: image: stackstorm/packagingbuild:rockylinux9 - extends: - file: docker-compose.override.yml - service: volumes-compose + volumes_from: + - container:st2-packages-vol ## Package testing nodes # focaltest: image: stackstorm/packagingtest:focal-systemd privileged: true + cgroup: host volumes_from: - - st2-packages-vol + - container:st2-packages-vol volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro + - /sys/fs/cgroup:/sys/fs/cgroup jammytest: image: stackstorm/packagingtest:jammy-systemd privileged: true + cgroup: host volumes_from: - - st2-packages-vol + - container:st2-packages-vol volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro + - /sys/fs/cgroup:/sys/fs/cgroup rockylinux8test: image: stackstorm/packagingtest:rockylinux8-systemd privileged: true + cgroup: host cap_add: - SYS_ADMIN security_opt: - seccomp:unconfined + volumes_from: + - container:st2-packages-vol volumes: - /sys/fs/cgroup:/sys/fs/cgroup rockylinux9test: image: stackstorm/packagingtest:rockylinux9-systemd privileged: true + cgroup: host cap_add: - SYS_ADMIN security_opt: - seccomp:unconfined + volumes_from: + - container:st2-packages-vol volumes: - /sys/fs/cgroup:/sys/fs/cgroup diff --git a/docker-compose.circle2.yml b/docker-compose.circle2.yml deleted file mode 100644 index 20e63999..00000000 --- a/docker-compose.circle2.yml +++ /dev/null @@ -1,150 +0,0 @@ -version: "3.8" - -services: - focal: - image: quay.io/stackstorm/packagingrunner - working_dir: /root/st2-packages - volumes_from: - - container:st2-packages-vol - environment: - - BUILDNODE=focalbuild - - TESTNODE=focaltest - - ST2_PACKAGES=st2 - links: - - focalbuild - - focaltest - - rabbitmq - - mongodb - - redis - - jammy: - image: quay.io/stackstorm/packagingrunner - working_dir: /root/st2-packages - volumes_from: - - container:st2-packages-vol - environment: - - BUILDNODE=jammybuild - - TESTNODE=jammytest - - ST2_PACKAGES=st2 - links: - - jammybuild - - jammytest - - rabbitmq - - mongodb - - redis - - el8: - image: quay.io/stackstorm/packagingrunner - working_dir: /root/st2-packages - volumes_from: - - container:st2-packages-vol - environment: - - BUILDNODE=rockylinux8build - - TESTNODE=rockylinux8test - links: - - rockylinux8build - - rockylinux8test - - rabbitmq - - mongodb - - redis - - el9: - image: quay.io/stackstorm/packagingrunner - working_dir: /root/st2-packages - volumes_from: - - container:st2-packages-vol - environment: - - BUILDNODE=rockylinux9build - - TESTNODE=rockylinux9test - links: - - rockylinux9build - - rockylinux9test - - rabbitmq - - mongodb - - redis - - ## Package build nodes - # - focalbuild: - image: stackstorm/packagingbuild:focal - volumes_from: - - container:st2-packages-vol - - jammybuild: - image: stackstorm/packagingbuild:jammy - volumes_from: - - container:st2-packages-vol - - rockylinux8build: - image: stackstorm/packagingbuild:rockylinux8 - volumes_from: - - container:st2-packages-vol - - rockylinux9build: - image: stackstorm/packagingbuild:rockylinux9 - volumes_from: - - container:st2-packages-vol - - ## Package testing nodes - # - focaltest: - image: stackstorm/packagingtest:focal-systemd - privileged: true - cgroup: host - volumes_from: - - container:st2-packages-vol - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup - - jammytest: - image: stackstorm/packagingtest:jammy-systemd - privileged: true - cgroup: host - volumes_from: - - container:st2-packages-vol - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup - - rockylinux8test: - image: stackstorm/packagingtest:rockylinux8-systemd - privileged: true - cgroup: host - cap_add: - - SYS_ADMIN - security_opt: - - seccomp:unconfined - volumes_from: - - container:st2-packages-vol - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup - - rockylinux9test: - image: stackstorm/packagingtest:rockylinux9-systemd - privileged: true - cgroup: host - cap_add: - - SYS_ADMIN - security_opt: - - seccomp:unconfined - volumes_from: - - container:st2-packages-vol - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup - - rabbitmq: - image: rabbitmq:3.12-management - privileged: true - hostname: rabbit - ports: - - "15672:15672" # managment plugin port - - "5672:5672" - - mongodb: - image: mongo:4.4 - ports: - - "27017:27017" - - redis: - image: redis:7.2.4 - ports: - - "6379:6379" From e64995035963bd67d8f29f9b184b2ea05e642f20 Mon Sep 17 00:00:00 2001 From: Carlos Date: Sun, 8 Mar 2026 09:50:47 +0100 Subject: [PATCH 3/5] Use 4 space indentation. --- .circle/docker-compose.sh | 64 +++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.circle/docker-compose.sh b/.circle/docker-compose.sh index 8e439c06..0c05c4a7 100755 --- a/.circle/docker-compose.sh +++ b/.circle/docker-compose.sh @@ -14,36 +14,36 @@ set -e set -x case "$1" in - # Clean up cached Docker containers from the previous CircleCI build - # With https://circleci.com/docs/2.0/docker-layer-caching/ and 'reusable: true' we may see - # containers running from the previous cached build - clean) - echo Cleaning cached Docker containers which could be there from the previous build ... - docker compose -f docker-compose.circle.yml -f docker-compose.override.yml rm -v --stop --force || true - ;; - # Perform fake command invocation, technically provides images "pull" phase. - pull) - echo Pulling dependent Docker images for $2 ... - docker compose -f docker-compose.circle.yml -f docker-compose.override.yml pull --include-deps $2 - ;; - build) - echo Starting Packages Build for $2 ... - docker compose -f docker-compose.circle.yml -f docker-compose.override.yml run \ - -e ST2_CHECKOUT=${ST2_CHECKOUT} \ - -e ST2_GITURL=${ST2_GITURL} \ - -e ST2_GITREV=${ST2_GITREV} \ - -e ST2_GITDIR=${ST2_GITDIR} \ - -e ST2PKG_VERSION=${ST2PKG_VERSION} \ - -e ST2PKG_RELEASE=${ST2PKG_RELEASE} \ - -e ST2_PACKAGES="${ST2_PACKAGES}" \ - -e ST2_CIRCLE_URL="${CIRCLE_BUILD_URL}" \ - $2 build - ;; - test) - [ "$TESTING" = 0 ] && { echo "Omitting Tests for $2 ..." ; exit 0; } - echo Starting Tests for $2 ... - docker compose -f docker-compose.circle.yml -f docker-compose.override.yml run \ - -e ST2_PACKAGES="${ST2_PACKAGES}" \ - "$2" test - ;; + clean) + # Clean up cached Docker containers from the previous CircleCI build + # With https://circleci.com/docs/2.0/docker-layer-caching/ and 'reusable: true' we may see + # containers running from the previous cached build + echo "Cleaning cached Docker containers which could be there from the previous build ..." + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml rm -v --stop --force || true + ;; + pull) + # Perform fake command invocation, technically provides images "pull" phase. + echo "Pulling dependent Docker images for $2 ..." + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml pull --include-deps "$2" + ;; + build) + echo "Starting Packages Build for $2 ..." + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml run \ + -e ST2_CHECKOUT=${ST2_CHECKOUT} \ + -e ST2_GITURL=${ST2_GITURL} \ + -e ST2_GITREV=${ST2_GITREV} \ + -e ST2_GITDIR=${ST2_GITDIR} \ + -e ST2PKG_VERSION=${ST2PKG_VERSION} \ + -e ST2PKG_RELEASE=${ST2PKG_RELEASE} \ + -e ST2_PACKAGES="${ST2_PACKAGES}" \ + -e ST2_CIRCLE_URL="${CIRCLE_BUILD_URL}" \ + "$2" build + ;; + test) + [ "$TESTING" = 0 ] && { echo "Omitting Tests for $2 ..." ; exit 0; } + echo "Starting Tests for $2 ..." + docker compose -f docker-compose.circle.yml -f docker-compose.override.yml run \ + -e ST2_PACKAGES="${ST2_PACKAGES}" \ + "$2" test + ;; esac From 1ec3b24b46e5b87fa3bc788e5c7c9132cb9b523f Mon Sep 17 00:00:00 2001 From: Carlos Date: Sun, 8 Mar 2026 09:57:52 +0100 Subject: [PATCH 4/5] Remove obsolete version attribute. --- docker-compose.circle.yml | 4 ---- docker-compose.override.yml | 4 ---- docker-compose.yml | 2 -- 3 files changed, 10 deletions(-) diff --git a/docker-compose.circle.yml b/docker-compose.circle.yml index 20e63999..4a158be2 100644 --- a/docker-compose.circle.yml +++ b/docker-compose.circle.yml @@ -1,5 +1,3 @@ -version: "3.8" - services: focal: image: quay.io/stackstorm/packagingrunner @@ -64,7 +62,6 @@ services: - redis ## Package build nodes - # focalbuild: image: stackstorm/packagingbuild:focal volumes_from: @@ -86,7 +83,6 @@ services: - container:st2-packages-vol ## Package testing nodes - # focaltest: image: stackstorm/packagingtest:focal-systemd privileged: true diff --git a/docker-compose.override.yml b/docker-compose.override.yml index b36790ec..eaaa1a27 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,7 +1,4 @@ ## Suites configuration -# -version: "3.8" - services: suite: image: fake @@ -26,7 +23,6 @@ services: service: suite ## Volumes passed during compose or ci builds - # volumes-compose: image: fake volumes: diff --git a/docker-compose.yml b/docker-compose.yml index aa85586b..ac77f8cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.8" - services: focal: image: quay.io/stackstorm/packagingrunner From 2d7c688d97b76e708c195da81be35ac1b2359b20 Mon Sep 17 00:00:00 2001 From: Carlos Date: Sun, 8 Mar 2026 10:14:17 +0100 Subject: [PATCH 5/5] Use next-gen convenience images from circleci --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 360fbd79..efc8175e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,7 +14,7 @@ jobs: resource_class: large docker: # The primary container is an instance of the first list image listed. Your build commands run in this container. - - image: circleci/python:3.8 + - image: cimg/python:3.8 working_directory: ~/st2-packages environment: DISTROS: "focal jammy el8 el9" @@ -128,7 +128,7 @@ jobs: deploy: docker: # The primary container is an instance of the first list image listed. Your build commands run in this container. - - image: circleci/ruby:2.7 + - image: cimg/ruby:2.7 working_directory: /tmp/deploy environment: - DISTROS: "focal jammy el8 el9"