From 9882793c905505d9212c86cd165d2d548bb1ad35 Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Tue, 18 Aug 2020 19:28:06 +0100 Subject: [PATCH 1/8] add github actions workflow --- .dockerignore | 3 +++ .github/workflows/build.yml | 38 ++++++++++++++++++++++++++++ Dockerfile | 49 +++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/build.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..a24a64b4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.*/ +build/ +Dockerfile* diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..e97b0050 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,38 @@ +name: Build +on: + - push +jobs: + build: + name: Build + strategy: + fail-fast: false + matrix: + include: + - image_name: debian + image_tag: 11 + - image_name: ubuntu + image_tag: 20.04 + - image_name: ubuntu + image_tag: 22.04 + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - name: Build + run: | + set -euxo pipefail + export DOCKER_BUILDKIT=1 + docker build \ + --progress=plain \ + --output=build \ + --target=artifacts \ + --build-arg=IMAGE=${{ matrix.image_name }}:${{ matrix.image_tag }} \ + . + for p in build/*.deb; do + mv "$p" "${p/-Linux\.deb/-${{ matrix.image_name }}-${{ matrix.image_tag }}.deb}" + done + - name: Archive + uses: actions/upload-artifact@v3 + with: + name: Artifacts + path: | + build/*.deb diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..572bc455 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,49 @@ +ARG IMAGE=debian:11 +ARG NETWORK_NM=OFF +ARG NETWORK_CM=OFF +FROM ${IMAGE} as build +ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC +RUN apt-get update && \ + apt-get install -y \ + cmake \ + file \ + g++ \ + git \ + python3 \ + devscripts \ + libace-dev \ + libglib2.0-dev \ + libcurl4-openssl-dev \ + libxerces-c-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libxml2-dev +COPY . /lms/ +RUN set -x && \ + cd /lms && \ + mkdir build && \ + cd build && \ + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DNETWORK_NM=${NETWORK_NM} \ + -DNETWORK_CM=${NETWORK_CM} \ + .. && \ + make -j$(nproc) package && \ + ldd UNS/lms && \ + dpkg-deb --info *.deb && \ + dpkg-deb --contents *.deb + +FROM ${IMAGE} as test +ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC +RUN apt-get update && \ + apt-get install -y \ + dpkg-dev +COPY --from=build /lms/build/*.deb /test/ +RUN cd /test && \ + dpkg-scanpackages . >Packages && \ + echo 'deb [trusted=yes] file:/test ./' >/etc/apt/sources.list.d/test.list && \ + apt-get update +RUN apt-get install -y lms + +FROM scratch as artifacts +COPY --from=test /test/*.deb / From 4845ef264fa46ec4cc6a4fb1a6ab57b168108c1b Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Tue, 1 Aug 2023 20:09:06 +0100 Subject: [PATCH 2/8] also build the debian 12 package --- .github/workflows/build.yml | 2 ++ Dockerfile | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e97b0050..ac61e4f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,8 @@ jobs: include: - image_name: debian image_tag: 11 + - image_name: debian + image_tag: 12 - image_name: ubuntu image_tag: 20.04 - image_name: ubuntu diff --git a/Dockerfile b/Dockerfile index 572bc455..226b9d01 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG IMAGE=debian:11 +ARG IMAGE=debian:12 ARG NETWORK_NM=OFF ARG NETWORK_CM=OFF FROM ${IMAGE} as build From 632c1a27668415c0bea7074a88bdb22a0a9ace23 Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Fri, 22 Dec 2023 09:02:46 +0000 Subject: [PATCH 3/8] install the required libidn2-0-dev build dependency --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 226b9d01..b466daab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,8 @@ RUN apt-get update && \ libxerces-c-dev \ libnl-3-dev \ libnl-route-3-dev \ - libxml2-dev + libxml2-dev \ + libidn2-0-dev COPY . /lms/ RUN set -x && \ cd /lms && \ From d9ec2d35947946b375a8551fa039b69414aa8f31 Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Fri, 22 Dec 2023 08:52:47 +0000 Subject: [PATCH 4/8] upgrade the build github actions workflow dependencies --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac61e4f8..730c721f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,9 +16,9 @@ jobs: image_tag: 20.04 - image_name: ubuntu image_tag: 22.04 - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Build run: | set -euxo pipefail @@ -33,8 +33,8 @@ jobs: mv "$p" "${p/-Linux\.deb/-${{ matrix.image_name }}-${{ matrix.image_tag }}.deb}" done - name: Archive - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: Artifacts + name: artifacts-${{ matrix.image_name }}-${{ matrix.image_tag }} path: | build/*.deb From 1c3aa9436217306a845b75f4bc0b98a157d2a626 Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Sat, 31 Aug 2024 19:01:58 +0100 Subject: [PATCH 5/8] also build the ubuntu 24.04 package --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 730c721f..2ee686ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,9 @@ jobs: image_tag: 20.04 - image_name: ubuntu image_tag: 22.04 - runs-on: ubuntu-22.04 + - image_name: ubuntu + image_tag: 24.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Build From 4c0fac7505202500f0f2fdc4cb76d83102a11f5b Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Wed, 3 Sep 2025 21:44:20 +0000 Subject: [PATCH 6/8] upgrade the build github actions workflow dependencies --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ee686ad..a8c4b053 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: image_tag: 24.04 runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Build run: | set -euxo pipefail From f664d5c0bc2ae2f5a5c1fc88ea117cf70020491b Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Wed, 3 Sep 2025 21:44:20 +0000 Subject: [PATCH 7/8] also build the debian 13 package --- .github/workflows/build.yml | 2 ++ Dockerfile | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a8c4b053..d6fd9017 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,8 @@ jobs: image_tag: 11 - image_name: debian image_tag: 12 + - image_name: debian + image_tag: 13 - image_name: ubuntu image_tag: 20.04 - image_name: ubuntu diff --git a/Dockerfile b/Dockerfile index b466daab..52534d83 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -ARG IMAGE=debian:12 +ARG IMAGE=debian:13 ARG NETWORK_NM=OFF ARG NETWORK_CM=OFF -FROM ${IMAGE} as build +FROM ${IMAGE} AS build ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC RUN apt-get update && \ apt-get install -y \ @@ -34,7 +34,7 @@ RUN set -x && \ dpkg-deb --info *.deb && \ dpkg-deb --contents *.deb -FROM ${IMAGE} as test +FROM ${IMAGE} AS test ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC RUN apt-get update && \ apt-get install -y \ @@ -46,5 +46,5 @@ RUN cd /test && \ apt-get update RUN apt-get install -y lms -FROM scratch as artifacts +FROM scratch AS artifacts COPY --from=test /test/*.deb / From 8793721e8cb33bddd87ef0127941ab95df83c449 Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Fri, 26 Dec 2025 08:11:54 +0000 Subject: [PATCH 8/8] also build the ubuntu 26.04 package --- .github/workflows/build.yml | 6 ++++-- Dockerfile | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6fd9017..564be330 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,9 +20,11 @@ jobs: image_tag: 22.04 - image_name: ubuntu image_tag: 24.04 + - image_name: ubuntu + image_tag: 26.04 runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Build run: | set -euxo pipefail @@ -37,7 +39,7 @@ jobs: mv "$p" "${p/-Linux\.deb/-${{ matrix.image_name }}-${{ matrix.image_tag }}.deb}" done - name: Archive - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: artifacts-${{ matrix.image_name }}-${{ matrix.image_tag }} path: | diff --git a/Dockerfile b/Dockerfile index 52534d83..be6960ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ ARG IMAGE=debian:13 ARG NETWORK_NM=OFF ARG NETWORK_CM=OFF FROM ${IMAGE} AS build +ARG IMAGE ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC RUN apt-get update && \ apt-get install -y \ @@ -22,6 +23,7 @@ RUN apt-get update && \ COPY . /lms/ RUN set -x && \ cd /lms && \ + if [ "${IMAGE}" = "ubuntu:26.04" ]; then sed -i -E 's,libxml2,libxml2-16,g' CMakeLists.txt; fi && \ mkdir build && \ cd build && \ cmake \