Commit b791f28d01 for freeswitch.com
commit b791f28d010f165c8e057602c2b7e60111706454
Author: Andrey Volk <andywolk@gmail.com>
Date: Mon Nov 9 23:03:18 2026 +0300
[GHA] Move CI to Debian 13 (Trixie). (#3278)
Use the freeswitch-public-ci-base:trixie-amd64 image for unit-tests, D-in-D unit-tests and scan-build.
ci.sh: use scan-build-14 on bookworm and the default scan-build (clang 19) otherwise.
diff --git a/.github/docker/debian/bookworm/amd64/CI/Dockerfile b/.github/docker/debian/trixie/amd64/CI/Dockerfile
similarity index 92%
rename from .github/docker/debian/bookworm/amd64/CI/Dockerfile
rename to .github/docker/debian/trixie/amd64/CI/Dockerfile
index 0fd3cec5f4..26bf74d296 100644
--- a/.github/docker/debian/bookworm/amd64/CI/Dockerfile
+++ b/.github/docker/debian/trixie/amd64/CI/Dockerfile
@@ -1,4 +1,4 @@
-ARG BUILDER_IMAGE=signalwire/freeswitch-public-ci-base:bookworm-amd64
+ARG BUILDER_IMAGE=signalwire/freeswitch-public-ci-base:trixie-amd64
FROM ${BUILDER_IMAGE}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 0d65a6171a..d9eb5c28fc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -27,7 +27,7 @@ on:
default: false
env:
- CI_BASE_STATIC_IMAGE: signalwire/freeswitch-public-ci-base:bookworm-amd64
+ CI_BASE_STATIC_IMAGE: signalwire/freeswitch-public-ci-base:trixie-amd64
DOCKER_BUILD_SUMMARY: false
DOCKER_BUILD_CHECKS_ANNOTATIONS: false
DOCKER_BUILD_RECORD_UPLOAD: false
diff --git a/.github/workflows/scan-build.yml b/.github/workflows/scan-build.yml
index 4237a28c4f..76e51941a9 100644
--- a/.github/workflows/scan-build.yml
+++ b/.github/workflows/scan-build.yml
@@ -16,7 +16,7 @@ jobs:
scan-build:
runs-on: ubuntu-latest
container:
- image: signalwire/freeswitch-public-ci-base:bookworm-amd64
+ image: signalwire/freeswitch-public-ci-base:trixie-amd64
options: --privileged
env:
DEBIAN_FRONTEND: noninteractive
diff --git a/.github/workflows/unit-test-dind.yml b/.github/workflows/unit-test-dind.yml
index 082763c07e..4688d5523b 100644
--- a/.github/workflows/unit-test-dind.yml
+++ b/.github/workflows/unit-test-dind.yml
@@ -23,7 +23,7 @@ jobs:
unit-tests:
runs-on: ubuntu-latest
container:
- image: signalwire/freeswitch-public-ci-base:bookworm-amd64
+ image: signalwire/freeswitch-public-ci-base:trixie-amd64
options: --privileged
env:
DEBIAN_FRONTEND: noninteractive
@@ -65,7 +65,7 @@ jobs:
echo "logs_path=${GITHUB_WORKSPACE}/freeswitch/tests/unit/logs" >> $GITHUB_OUTPUT
"${GITHUB_WORKSPACE}/freeswitch/tests/unit/run-tests-docker.sh" \
- --base-image signalwire/freeswitch-public-ci-base:bookworm-amd64 \
+ --base-image signalwire/freeswitch-public-ci-base:trixie-amd64 \
--cpus ${{ env.NUM_CPU_PER_CONTAINER }} \
--image-tag ci.local \
--max-containers ${{ env.MAX_CONTAINERS }} \
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index 6cf6f24c97..86c05ae03f 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -25,7 +25,7 @@ on:
description: 'Container image to use for running tests'
required: false
type: string
- default: 'signalwire/freeswitch-public-ci-base:bookworm-amd64'
+ default: 'signalwire/freeswitch-public-ci-base:trixie-amd64'
working-directory:
description: 'Working directory for running tests'
required: false
diff --git a/ci.sh b/ci.sh
index 9207bcd1a1..edff73e934 100755
--- a/ci.sh
+++ b/ci.sh
@@ -131,14 +131,24 @@ build_freeswitch()
;;
"scan-build")
- if ! command -v scan-build-14 > /dev/null 2>&1; then
- echo "Error: scan-build-14 command not found. Please ensure clang static analyzer is installed." >&2
+ # Use scan-build-14 for bookworm, default scan-build otherwise
+ DEBIAN_CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")
+ if [[ "$DEBIAN_CODENAME" == "bookworm" ]]; then
+ SCAN_BUILD_CMD="scan-build-14"
+ else
+ SCAN_BUILD_CMD="scan-build"
+ fi
+
+ if ! command -v $SCAN_BUILD_CMD > /dev/null 2>&1; then
+ echo "Error: $SCAN_BUILD_CMD command not found. Please ensure clang static analyzer is installed." >&2
exit 1
fi
+ echo "Using: $SCAN_BUILD_CMD (Debian: $DEBIAN_CODENAME)"
+
mkdir -p scan-build
- scan-build-14 \
+ $SCAN_BUILD_CMD \
--force-analyze-debug-code \
--status-bugs \
-o ./scan-build/ \
diff --git a/tests/unit/run-tests-docker.sh b/tests/unit/run-tests-docker.sh
index 91e52d3b3d..2b7b0105a0 100755
--- a/tests/unit/run-tests-docker.sh
+++ b/tests/unit/run-tests-docker.sh
@@ -92,7 +92,7 @@ if ! docker build \
--build-arg BUILDER_IMAGE="$BASE_IMAGE" \
--build-context sofia-sip="$SOFIA_SIP_PATH" \
--build-context freeswitch="$FREESWITCH_PATH" \
- --file "$FREESWITCH_PATH/.github/docker/debian/bookworm/amd64/CI/Dockerfile" \
+ --file "$FREESWITCH_PATH/.github/docker/debian/trixie/amd64/CI/Dockerfile" \
--tag "$IMAGE_TAG" \
"$FREESWITCH_PATH/.github/docker/debian" > "$BUILD_LOG" 2>&1; then
echo "Docker build failed! Build log:"