diff --git a/.github/docker/debian/bookworm/amd64/public.release.Dockerfile b/.github/docker/debian/bookworm/amd64/public.release.Dockerfile index e6ec64661e..2a99fe6a46 100644 --- a/.github/docker/debian/bookworm/amd64/public.release.Dockerfile +++ b/.github/docker/debian/bookworm/amd64/public.release.Dockerfile @@ -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/bookworm/amd64/public.unstable.Dockerfile b/.github/docker/debian/bookworm/amd64/public.unstable.Dockerfile index 3ef7b38b38..a39bbd05f2 100644 --- a/.github/docker/debian/bookworm/amd64/public.unstable.Dockerfile +++ b/.github/docker/debian/bookworm/amd64/public.unstable.Dockerfile @@ -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/bookworm/arm32v7/public.release.Dockerfile b/.github/docker/debian/bookworm/arm32v7/public.release.Dockerfile index d636a0c6ea..78d10ee66c 100644 --- a/.github/docker/debian/bookworm/arm32v7/public.release.Dockerfile +++ b/.github/docker/debian/bookworm/arm32v7/public.release.Dockerfile @@ -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/bookworm/arm32v7/public.unstable.Dockerfile b/.github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile index 6259c7e8e9..94ef25d432 100644 --- a/.github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile +++ b/.github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile @@ -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/bookworm/arm64v8/public.release.Dockerfile b/.github/docker/debian/bookworm/arm64v8/public.release.Dockerfile index 5c34022d29..2bf5084ca3 100644 --- a/.github/docker/debian/bookworm/arm64v8/public.release.Dockerfile +++ b/.github/docker/debian/bookworm/arm64v8/public.release.Dockerfile @@ -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/bookworm/arm64v8/public.unstable.Dockerfile b/.github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile index 0df5a178fe..56cc1c7e47 100644 --- a/.github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile +++ b/.github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile @@ -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/bullseye/amd64/public.release.Dockerfile b/.github/docker/debian/bullseye/amd64/public.release.Dockerfile index 94c5e335b2..17411f7afd 100644 --- a/.github/docker/debian/bullseye/amd64/public.release.Dockerfile +++ b/.github/docker/debian/bullseye/amd64/public.release.Dockerfile @@ -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/bullseye/amd64/public.unstable.Dockerfile b/.github/docker/debian/bullseye/amd64/public.unstable.Dockerfile index 56586d338e..364107852e 100644 --- a/.github/docker/debian/bullseye/amd64/public.unstable.Dockerfile +++ b/.github/docker/debian/bullseye/amd64/public.unstable.Dockerfile @@ -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/bullseye/arm32v7/public.release.Dockerfile b/.github/docker/debian/bullseye/arm32v7/public.release.Dockerfile index 200b8dca1a..f3e135b7a3 100644 --- a/.github/docker/debian/bullseye/arm32v7/public.release.Dockerfile +++ b/.github/docker/debian/bullseye/arm32v7/public.release.Dockerfile @@ -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/bullseye/arm32v7/public.unstable.Dockerfile b/.github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile index 24c5804b68..6c6367ff14 100644 --- a/.github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile +++ b/.github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile @@ -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/bullseye/arm64v8/public.release.Dockerfile b/.github/docker/debian/bullseye/arm64v8/public.release.Dockerfile index 5476c22192..53361956d7 100644 --- a/.github/docker/debian/bullseye/arm64v8/public.release.Dockerfile +++ b/.github/docker/debian/bullseye/arm64v8/public.release.Dockerfile @@ -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/bullseye/arm64v8/public.unstable.Dockerfile b/.github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile index f5a6a906c4..3ae9e546fb 100644 --- a/.github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile +++ b/.github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile @@ -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 index 0000000000..f91868276f --- /dev/null +++ b/.github/docker/debian/trixie/amd64/public.release.Dockerfile @@ -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 index 0000000000..f91868276f --- /dev/null +++ b/.github/docker/debian/trixie/amd64/public.unstable.Dockerfile @@ -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 index 0000000000..32c19d915e --- /dev/null +++ b/.github/docker/debian/trixie/arm32v7/public.release.Dockerfile @@ -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 index 0000000000..32c19d915e --- /dev/null +++ b/.github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile @@ -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 index 0000000000..426aa71220 --- /dev/null +++ b/.github/docker/debian/trixie/arm64v8/public.release.Dockerfile @@ -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 index 0000000000..426aa71220 --- /dev/null +++ b/.github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile @@ -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/workflows/build.yml b/.github/workflows/build.yml index 924cb3f833..0e65c25b84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 ' + MAINTAINER: "Andrey Volk " 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: diff --git a/.gitignore b/.gitignore index 49450ad19d..41e5c0cce8 100644 --- a/.gitignore +++ b/.gitignore @@ -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