]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
WiP: [GHA] Add `trixie` build target
authors3rj1k <evasive.gyron@gmail.com>
Fri, 11 Jul 2025 22:59:40 +0000 (00:59 +0200)
committers3rj1k <evasive.gyron@gmail.com>
Fri, 11 Jul 2025 23:36:52 +0000 (01:36 +0200)
.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

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..75dd81b
--- /dev/null
@@ -0,0 +1,84 @@
+ARG BUILDER_IMAGE=debian:trixie-20250520
+
+FROM ${BUILDER_IMAGE} AS builder
+
+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) release && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get --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..42e8059
--- /dev/null
@@ -0,0 +1,84 @@
+ARG BUILDER_IMAGE=debian:trixie-20250520
+
+FROM ${BUILDER_IMAGE} AS builder
+
+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 --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..209d564
--- /dev/null
@@ -0,0 +1,84 @@
+ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250520
+
+FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
+
+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) release && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get --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..ac4091c
--- /dev/null
@@ -0,0 +1,84 @@
+ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250520
+
+FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
+
+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 --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..332c12f
--- /dev/null
@@ -0,0 +1,84 @@
+ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250520
+
+FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
+
+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) release && \
+    apt-get --quiet update && \
+    mk-build-deps \
+        --install \
+        --remove debian/control \
+        --tool "apt-get --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..3a4aea6
--- /dev/null
@@ -0,0 +1,84 @@
+ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250520
+
+FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
+
+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 --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..c9446b8636b44ba064bb8519eaf89cdf9745d0a4 100644 (file)
@@ -48,15 +48,15 @@ jobs:
           if [[ "${{ github.event_name }}" == "pull_request" ]]; then
             JSON=$(jq -n '[
               {
-                "version": "bookworm",
+                "version": "trixie",
                 "platform": {
-                  "name": "arm64v8"
+                  "name": "amd64"
                 }
               },
               {
-                "version": "bullseye",
+                "version": "bookworm",
                 "platform": {
-                  "name": "amd64"
+                  "name": "arm64v8"
                 }
               },
               {
@@ -130,6 +130,7 @@ jobs:
         os:
           - debian
         version:
+          - trixie
           - bookworm
           - bullseye
         platform: