]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[GHA] Add `trixie` build target 2845/head
authors3rj1k <evasive.gyron@gmail.com>
Fri, 11 Jul 2025 22:59:40 +0000 (00:59 +0200)
committerAndrey Volk <andywolk@gmail.com>
Tue, 22 Jul 2025 17:07:15 +0000 (20:07 +0300)
Co-authored-by: Andrey Volk <andywolk@gmail.com>
20 files changed:
.github/docker/debian/bookworm/amd64/public.release.Dockerfile
.github/docker/debian/bookworm/amd64/public.unstable.Dockerfile
.github/docker/debian/bookworm/arm32v7/public.release.Dockerfile
.github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile
.github/docker/debian/bookworm/arm64v8/public.release.Dockerfile
.github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile
.github/docker/debian/bullseye/amd64/public.release.Dockerfile
.github/docker/debian/bullseye/amd64/public.unstable.Dockerfile
.github/docker/debian/bullseye/arm32v7/public.release.Dockerfile
.github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile
.github/docker/debian/bullseye/arm64v8/public.release.Dockerfile
.github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile
.github/docker/debian/trixie/amd64/public.release.Dockerfile [new file with mode: 0644]
.github/docker/debian/trixie/amd64/public.unstable.Dockerfile [new file with mode: 0644]
.github/docker/debian/trixie/arm32v7/public.release.Dockerfile [new file with mode: 0644]
.github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile [new file with mode: 0644]
.github/docker/debian/trixie/arm64v8/public.release.Dockerfile [new file with mode: 0644]
.github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile [new file with mode: 0644]
.github/workflows/build.yml
.gitignore

index e6ec64661e4e9dc3dfbe85f2bac4bf061e725127..2a99fe6a4653f9201f70245f1691940093b62ee8 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 3ef7b38b38d77a639a96b1e1cf33630361b1f3e5..a39bbd05f2d5d17ac0ef4a5e74d3894e642bd065 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index d636a0c6eaf4132a24ad12ba69cdd20c1bc2f761..78d10ee66c5eee00ce942b9b20c55a135e2e6d56 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 6259c7e8e9246d1b7561e018e0065823d3969b27..94ef25d4320a750c6bc470ec144a1440ae09aeac 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 5c34022d2983019b314c75adf34027657cca45d5..2bf5084ca3fdb02b5452a4579a00b1cfeaa27227 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 0df5a178fe3efc89d0485caf31080511b4170c9a..56cc1c7e47a47887f59b9b48d92e1c37d0343077 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 94c5e335b2fa079f08081586b5ad50119f13ed80..17411f7afdca6de62a6b2cc22578854c24baa2c7 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 56586d338e37e7acc8607e26c0a340902edb655d..364107852e6115d0180bea49b5b34c27cf181a91 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 200b8dca1a9bc407c1463b30c5f9a16f704737c5..f3e135b7a31360e37f4adcb5c63e25bc266d07e0 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 24c5804b68f16f4db7d552f431bf1f0e9697c49d..6c6367ff147c0321fde972da102a831e8cc87340 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index 5476c221927aa9594c4e4ecfe94997c616fb75e9..53361956d7a8b9e9981141a462a2c948961d49c2 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
index f5a6a906c48a90df273db8fb12e3d53c60f1e966..3ae9e546fb83311b6ba82276264838569c499413 100644 (file)
@@ -78,7 +78,7 @@ RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
     mk-build-deps \
         --install \
         --remove debian/control \
-        --tool "apt-get --yes --no-install-recommends" && \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
     apt-get --yes --fix-broken install && \
     rm -f /etc/apt/auth.conf
 
diff --git a/.github/docker/debian/trixie/amd64/public.release.Dockerfile b/.github/docker/debian/trixie/amd64/public.release.Dockerfile
new file mode 100644 (file)
index 0000000..f918682
--- /dev/null
@@ -0,0 +1,85 @@
+ARG BUILDER_IMAGE=debian:trixie-20250520
+
+FROM ${BUILDER_IMAGE} AS builder
+
+ARG MAINTAINER_NAME="Andrey Volk"
+ARG MAINTAINER_EMAIL="andrey@signalwire.com"
+
+ARG BUILD_NUMBER=42
+ARG GIT_SHA=0000000000
+
+ARG DATA_DIR=/data
+ARG CODENAME=trixie
+
+LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
+
+SHELL ["/bin/bash", "-c"]
+
+RUN apt-get -q update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
+        apt-transport-https \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        debhelper \
+        devscripts \
+        dh-autoreconf \
+        dos2unix \
+        doxygen \
+        git \
+        graphviz \
+        libglib2.0-dev \
+        libssl-dev \
+        lsb-release \
+        pkg-config \
+        wget
+
+RUN update-ca-certificates --fresh
+
+RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
+    chmod +x ~/.env
+
+RUN git config --global --add safe.directory '*' \
+    && git config --global user.name "${MAINTAINER_NAME}" \
+    && git config --global user.email "${MAINTAINER_EMAIL}"
+
+# Bootstrap and Build
+COPY . ${DATA_DIR}
+WORKDIR ${DATA_DIR}
+RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
+
+RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
+
+RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
+    sha512sum /run/secrets/REPO_PASSWORD && \
+    curl -sSL https://freeswitch.org/fsget | \
+        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
+    apt-get --yes --fix-broken install && \
+    rm -f /etc/apt/auth.conf
+
+ENV DEB_BUILD_OPTIONS="parallel=1"
+RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
+  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
+
+RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+
+RUN dpkg-source \
+        --diff-ignore=.* \
+        --compression=xz \
+        --compression-level=9 \
+        --build \
+    . \
+    && debuild -b -us -uc \
+    && mkdir OUT \
+    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
+
+# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
+FROM scratch
+COPY --from=builder /data/OUT/ /
diff --git a/.github/docker/debian/trixie/amd64/public.unstable.Dockerfile b/.github/docker/debian/trixie/amd64/public.unstable.Dockerfile
new file mode 100644 (file)
index 0000000..f918682
--- /dev/null
@@ -0,0 +1,85 @@
+ARG BUILDER_IMAGE=debian:trixie-20250520
+
+FROM ${BUILDER_IMAGE} AS builder
+
+ARG MAINTAINER_NAME="Andrey Volk"
+ARG MAINTAINER_EMAIL="andrey@signalwire.com"
+
+ARG BUILD_NUMBER=42
+ARG GIT_SHA=0000000000
+
+ARG DATA_DIR=/data
+ARG CODENAME=trixie
+
+LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
+
+SHELL ["/bin/bash", "-c"]
+
+RUN apt-get -q update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
+        apt-transport-https \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        debhelper \
+        devscripts \
+        dh-autoreconf \
+        dos2unix \
+        doxygen \
+        git \
+        graphviz \
+        libglib2.0-dev \
+        libssl-dev \
+        lsb-release \
+        pkg-config \
+        wget
+
+RUN update-ca-certificates --fresh
+
+RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
+    chmod +x ~/.env
+
+RUN git config --global --add safe.directory '*' \
+    && git config --global user.name "${MAINTAINER_NAME}" \
+    && git config --global user.email "${MAINTAINER_EMAIL}"
+
+# Bootstrap and Build
+COPY . ${DATA_DIR}
+WORKDIR ${DATA_DIR}
+RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
+
+RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
+
+RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
+    sha512sum /run/secrets/REPO_PASSWORD && \
+    curl -sSL https://freeswitch.org/fsget | \
+        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
+    apt-get --yes --fix-broken install && \
+    rm -f /etc/apt/auth.conf
+
+ENV DEB_BUILD_OPTIONS="parallel=1"
+RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
+  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
+
+RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+
+RUN dpkg-source \
+        --diff-ignore=.* \
+        --compression=xz \
+        --compression-level=9 \
+        --build \
+    . \
+    && debuild -b -us -uc \
+    && mkdir OUT \
+    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
+
+# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
+FROM scratch
+COPY --from=builder /data/OUT/ /
diff --git a/.github/docker/debian/trixie/arm32v7/public.release.Dockerfile b/.github/docker/debian/trixie/arm32v7/public.release.Dockerfile
new file mode 100644 (file)
index 0000000..32c19d9
--- /dev/null
@@ -0,0 +1,85 @@
+ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250520
+
+FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
+
+ARG MAINTAINER_NAME="Andrey Volk"
+ARG MAINTAINER_EMAIL="andrey@signalwire.com"
+
+ARG BUILD_NUMBER=42
+ARG GIT_SHA=0000000000
+
+ARG DATA_DIR=/data
+ARG CODENAME=trixie
+
+LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
+
+SHELL ["/bin/bash", "-c"]
+
+RUN apt-get -q update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
+        apt-transport-https \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        debhelper \
+        devscripts \
+        dh-autoreconf \
+        dos2unix \
+        doxygen \
+        git \
+        graphviz \
+        libglib2.0-dev \
+        libssl-dev \
+        lsb-release \
+        pkg-config \
+        wget
+
+RUN update-ca-certificates --fresh
+
+RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
+    chmod +x ~/.env
+
+RUN git config --global --add safe.directory '*' \
+    && git config --global user.name "${MAINTAINER_NAME}" \
+    && git config --global user.email "${MAINTAINER_EMAIL}"
+
+# Bootstrap and Build
+COPY . ${DATA_DIR}
+WORKDIR ${DATA_DIR}
+RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
+
+RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
+
+RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
+    sha512sum /run/secrets/REPO_PASSWORD && \
+    curl -sSL https://freeswitch.org/fsget | \
+        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
+    apt-get --yes --fix-broken install && \
+    rm -f /etc/apt/auth.conf
+
+ENV DEB_BUILD_OPTIONS="parallel=1"
+RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
+  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
+
+RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+
+RUN dpkg-source \
+        --diff-ignore=.* \
+        --compression=xz \
+        --compression-level=9 \
+        --build \
+    . \
+    && debuild -b -us -uc \
+    && mkdir OUT \
+    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
+
+# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
+FROM scratch
+COPY --from=builder /data/OUT/ /
diff --git a/.github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile b/.github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile
new file mode 100644 (file)
index 0000000..32c19d9
--- /dev/null
@@ -0,0 +1,85 @@
+ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250520
+
+FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
+
+ARG MAINTAINER_NAME="Andrey Volk"
+ARG MAINTAINER_EMAIL="andrey@signalwire.com"
+
+ARG BUILD_NUMBER=42
+ARG GIT_SHA=0000000000
+
+ARG DATA_DIR=/data
+ARG CODENAME=trixie
+
+LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
+
+SHELL ["/bin/bash", "-c"]
+
+RUN apt-get -q update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
+        apt-transport-https \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        debhelper \
+        devscripts \
+        dh-autoreconf \
+        dos2unix \
+        doxygen \
+        git \
+        graphviz \
+        libglib2.0-dev \
+        libssl-dev \
+        lsb-release \
+        pkg-config \
+        wget
+
+RUN update-ca-certificates --fresh
+
+RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
+    chmod +x ~/.env
+
+RUN git config --global --add safe.directory '*' \
+    && git config --global user.name "${MAINTAINER_NAME}" \
+    && git config --global user.email "${MAINTAINER_EMAIL}"
+
+# Bootstrap and Build
+COPY . ${DATA_DIR}
+WORKDIR ${DATA_DIR}
+RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
+
+RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
+
+RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
+    sha512sum /run/secrets/REPO_PASSWORD && \
+    curl -sSL https://freeswitch.org/fsget | \
+        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
+    apt-get --yes --fix-broken install && \
+    rm -f /etc/apt/auth.conf
+
+ENV DEB_BUILD_OPTIONS="parallel=1"
+RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
+  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
+
+RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+
+RUN dpkg-source \
+        --diff-ignore=.* \
+        --compression=xz \
+        --compression-level=9 \
+        --build \
+    . \
+    && debuild -b -us -uc \
+    && mkdir OUT \
+    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
+
+# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
+FROM scratch
+COPY --from=builder /data/OUT/ /
diff --git a/.github/docker/debian/trixie/arm64v8/public.release.Dockerfile b/.github/docker/debian/trixie/arm64v8/public.release.Dockerfile
new file mode 100644 (file)
index 0000000..426aa71
--- /dev/null
@@ -0,0 +1,85 @@
+ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250520
+
+FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
+
+ARG MAINTAINER_NAME="Andrey Volk"
+ARG MAINTAINER_EMAIL="andrey@signalwire.com"
+
+ARG BUILD_NUMBER=42
+ARG GIT_SHA=0000000000
+
+ARG DATA_DIR=/data
+ARG CODENAME=trixie
+
+LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
+
+SHELL ["/bin/bash", "-c"]
+
+RUN apt-get -q update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
+        apt-transport-https \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        debhelper \
+        devscripts \
+        dh-autoreconf \
+        dos2unix \
+        doxygen \
+        git \
+        graphviz \
+        libglib2.0-dev \
+        libssl-dev \
+        lsb-release \
+        pkg-config \
+        wget
+
+RUN update-ca-certificates --fresh
+
+RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
+    chmod +x ~/.env
+
+RUN git config --global --add safe.directory '*' \
+    && git config --global user.name "${MAINTAINER_NAME}" \
+    && git config --global user.email "${MAINTAINER_EMAIL}"
+
+# Bootstrap and Build
+COPY . ${DATA_DIR}
+WORKDIR ${DATA_DIR}
+RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
+
+RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
+
+RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
+    sha512sum /run/secrets/REPO_PASSWORD && \
+    curl -sSL https://freeswitch.org/fsget | \
+        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
+    apt-get --yes --fix-broken install && \
+    rm -f /etc/apt/auth.conf
+
+ENV DEB_BUILD_OPTIONS="parallel=1"
+RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
+  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
+
+RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+
+RUN dpkg-source \
+        --diff-ignore=.* \
+        --compression=xz \
+        --compression-level=9 \
+        --build \
+    . \
+    && debuild -b -us -uc \
+    && mkdir OUT \
+    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
+
+# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
+FROM scratch
+COPY --from=builder /data/OUT/ /
diff --git a/.github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile b/.github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile
new file mode 100644 (file)
index 0000000..426aa71
--- /dev/null
@@ -0,0 +1,85 @@
+ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250520
+
+FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
+
+ARG MAINTAINER_NAME="Andrey Volk"
+ARG MAINTAINER_EMAIL="andrey@signalwire.com"
+
+ARG BUILD_NUMBER=42
+ARG GIT_SHA=0000000000
+
+ARG DATA_DIR=/data
+ARG CODENAME=trixie
+
+LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
+
+SHELL ["/bin/bash", "-c"]
+
+RUN apt-get -q update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -yq install \
+        apt-transport-https \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        debhelper \
+        devscripts \
+        dh-autoreconf \
+        dos2unix \
+        doxygen \
+        git \
+        graphviz \
+        libglib2.0-dev \
+        libssl-dev \
+        lsb-release \
+        pkg-config \
+        wget
+
+RUN update-ca-certificates --fresh
+
+RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
+    chmod +x ~/.env
+
+RUN git config --global --add safe.directory '*' \
+    && git config --global user.name "${MAINTAINER_NAME}" \
+    && git config --global user.email "${MAINTAINER_EMAIL}"
+
+# Bootstrap and Build
+COPY . ${DATA_DIR}
+WORKDIR ${DATA_DIR}
+RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
+
+RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
+
+RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
+    sha512sum /run/secrets/REPO_PASSWORD && \
+    curl -sSL https://freeswitch.org/fsget | \
+        bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
+    apt-get --yes --fix-broken install && \
+    rm -f /etc/apt/auth.conf
+
+ENV DEB_BUILD_OPTIONS="parallel=1"
+RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
+  --force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
+
+RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
+
+RUN dpkg-source \
+        --diff-ignore=.* \
+        --compression=xz \
+        --compression-level=9 \
+        --build \
+    . \
+    && debuild -b -us -uc \
+    && mkdir OUT \
+    && mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
+
+# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
+FROM scratch
+COPY --from=builder /data/OUT/ /
index 924cb3f83339eb35c7d5aef119117c076001c587..0e65c25b8431eec1948d2bfa886f91a332225eb2 100644 (file)
@@ -11,12 +11,12 @@ on:
   workflow_dispatch:
     inputs:
       freeswitch_ref:
-        description: 'FreeSWITCH repository ref'
+        description: "FreeSWITCH repository ref"
         required: true
         default: master
         type: string
       release:
-        description: 'FreeSWITCH release type'
+        description: "FreeSWITCH release type"
         type: choice
         required: true
         default: unstable
@@ -24,7 +24,7 @@ on:
           - release
           - unstable
       publish:
-        description: 'Publish build data'
+        description: "Publish build data"
         required: true
         default: false
         type: boolean
@@ -34,7 +34,7 @@ concurrency:
 
 jobs:
   preconfig:
-    name: 'Preconfig'
+    name: "Preconfig"
     runs-on: ubuntu-latest
     outputs:
       deb: ${{ steps.deb.outputs.excludes }}
@@ -53,12 +53,6 @@ jobs:
                   "name": "arm64v8"
                 }
               },
-              {
-                "version": "bullseye",
-                "platform": {
-                  "name": "amd64"
-                }
-              },
               {
                 "version": "bullseye",
                 "platform": {
@@ -88,7 +82,7 @@ jobs:
           fi
 
   get-nonce:
-    name: 'Get Nonce for token'
+    name: "Get Nonce for token"
     runs-on: freeswitch-repo-auth-client
     outputs:
       nonce: ${{ steps.get-nonce.outputs.nonce }}
@@ -100,12 +94,17 @@ jobs:
           mode: nonce
 
   issue-token:
-    name: 'Issue temporary token'
+    name: "Issue temporary token"
     runs-on: ubuntu-latest
     needs: get-nonce
+    env:
+      NONCE: ${{ needs.get-nonce.outputs.nonce }}
     outputs:
       token: ${{ steps.issue-token.outputs.token }}
     steps:
+      - name: Mask Token
+        run: echo "::add-mask::$NONCE"
+
       - name: Issue Token
         id: issue-token
         uses: signalwire/actions-template/.github/actions/repo-auth-client@main
@@ -115,7 +114,7 @@ jobs:
           mode: issue
 
   deb-public:
-    name: 'DEB-PUBLIC'
+    name: "DEB-PUBLIC"
     permissions:
       id-token: write
       contents: read
@@ -130,6 +129,7 @@ jobs:
         os:
           - debian
         version:
+          - trixie
           - bookworm
           - bullseye
         platform:
@@ -147,10 +147,10 @@ jobs:
       REF: ${{ inputs.freeswitch_ref }}
       ARTIFACTS_PATTERN: '.*\.(deb|dsc|changes|tar.bz2|tar.gz|tar.lzma|tar.xz)$'
       DOCKERFILE: .github/docker/${{ matrix.os }}/${{ matrix.version }}/${{ matrix.platform.name }}/public.${{ matrix.release }}.Dockerfile
-      MAINTAINER: 'Andrey Volk <andrey@signalwire.com>'
+      MAINTAINER: "Andrey Volk <andrey@signalwire.com>"
       META_FILE_PATH_PREFIX: /var/www/freeswitch/public/${{ matrix.release }}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}
       PLATFORM: ${{ matrix.platform.name }}
-      REPO_DOMAIN: 'freeswitch.signalwire.com'
+      REPO_DOMAIN: "freeswitch.signalwire.com"
       TARGET_ARTIFACT_NAME: ${{ matrix.os }}-${{ matrix.version }}-${{ matrix.platform.name }}-public-${{ matrix.release }}-artifact
       UPLOAD_BUILD_ARTIFACTS: >-
         ${{
@@ -169,11 +169,11 @@ jobs:
       PROXY_URL: ${{ secrets.PROXY_URL }}
       USERNAME: ${{ secrets.USERNAME }}
       TELEPORT_TOKEN: ${{ secrets.TELEPORT_TOKEN }}
-      REPO_USERNAME: 'SWUSERNAME'
+      REPO_USERNAME: "SWUSERNAME"
       REPO_PASSWORD: ${{ needs.issue-token.outputs.token }}
 
   revoke-token:
-    name: 'Revoke temporary token'
+    name: "Revoke temporary token"
     runs-on: ubuntu-latest
     # if: always()
     needs:
@@ -189,7 +189,7 @@ jobs:
           mode: revoke
 
   meta:
-    name: 'Publish build data to meta-repo'
+    name: "Publish build data to meta-repo"
     if: >-
       ${{
         (github.event.pull_request.head.repo.full_name == github.repository) &&
@@ -208,7 +208,7 @@ jobs:
       contents: read
     uses: signalwire/actions-template/.github/workflows/meta-repo-content.yml@main
     with:
-      META_CONTENT: '/var/www/freeswitch/public/{release,unstable}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}'
+      META_CONTENT: "/var/www/freeswitch/public/{release,unstable}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}"
       META_REPO: signalwire/bamboo_gha_trigger
       META_REPO_BRANCH: trigger/freeswitch/${{ github.ref_name }}
     secrets:
index 49450ad19d42e97d4fe5ef05dbec89167ab24aa8..41e5c0cce876bd0f87fbc36b87f217ff10ef271e 100644 (file)
@@ -273,3 +273,5 @@ images/test_text.png
 
 src/mod/codecs/mod_amrwb/test/test_amrwb
 src/mod/endpoints/mod_sofia/test/sipp-based-tests
+
+.DS_Store