From cd7c35eb5a047d7bf10c2abadb458b4140db9676 Mon Sep 17 00:00:00 2001 From: Lukas Sismis Date: Thu, 11 Apr 2024 22:55:22 +0200 Subject: [PATCH] github-ci: add minimal build for Ubuntu and AlmaLinux --- .github/workflows/builds.yml | 96 +++++++++++++++++++++ Makefile.am | 1 + scripts/docs-almalinux9-minimal-build.sh | 9 ++ scripts/docs-ubuntu-debian-minimal-build.sh | 9 ++ 4 files changed, 115 insertions(+) create mode 100755 scripts/docs-almalinux9-minimal-build.sh create mode 100755 scripts/docs-ubuntu-debian-minimal-build.sh diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index a8f5520d6963..ac51b07dcd51 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -1246,6 +1246,62 @@ jobs: else exit 0 fi + almalinux-9-minimal-recommended-dependecies: + name: AlmaLinux 9 (Minimal/Recommended Build) + runs-on: ubuntu-latest + container: almalinux:9 + needs: [prepare-deps] + steps: + # Cache Rust stuff. + - name: Cache cargo registry + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 + with: + path: ~/.cargo + key: ${{ github.job }}-cargo + + - name: Cache RPMs + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 + with: + path: /var/cache/dnf + key: ${{ github.job }}-dnf + - run: echo "keepcache=1" >> /etc/dnf/dnf.conf + + - name: Determine number of CPUs + run: echo CPUS=$(nproc --all) >> $GITHUB_ENV + + - name: Install git dependencies + run: | + dnf -y install \ + sudo \ + git \ + libtool \ + which + + - name: Install Almalinux 9 extra repositories + run : | + dnf -y update + dnf -y install dnf-plugins-core epel-release + dnf config-manager --set-enabled crb + + + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + - run: git config --global --add safe.directory /__w/suricata/suricata + - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 + + - name: Install minimal dependencies + run: ./scripts/docs-almalinux9-minimal-build.sh + + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + - run: git config --global --add safe.directory /__w/suricata/suricata + - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e + with: + name: prep + path: prep + - run: tar xf prep/libhtp.tar.gz + - run: ./autogen.sh + - run: CFLAGS="${DEFAULT_CFLAGS}" ./configure + - run: make -j ${{ env.CPUS }} + - run: ./src/suricata --build-info # check if we can run Suricata ubuntu-24-04: name: Ubuntu 24.04 (cocci) @@ -2420,6 +2476,46 @@ jobs: - run: make -j ${{ env.CPUS }} - run: ./src/suricata --build-info | grep -E "Netmap support:\s+yes" + ubuntu-22-04-minimal-recommended-build: + name: Ubuntu 22.04 (Minimal/Recommended Build) + needs: [prepare-deps, prepare-cbindgen] + runs-on: ubuntu-22.04 + steps: + # Cache Rust stuff. + - name: Cache cargo registry + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 + with: + path: ~/.cargo/registry + key: cargo-registry + + - name: Determine number of CPUs + run: echo CPUS=$(nproc --all) >> $GITHUB_ENV + + - name: Install git dependencies + run: | + sudo apt update + sudo apt -y install \ + git \ + libtool + + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + - run: git config --global --add safe.directory /__w/suricata/suricata + - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 + with: + name: prep + path: prep + - run: tar xf prep/libhtp.tar.gz + - run: tar xf prep/suricata-update.tar.gz + - run: tar xf prep/suricata-verify.tar.gz + - run: ./autogen.sh + + - name: Install minimal dependencies + run: ./scripts/docs-ubuntu-debian-minimal-build.sh + + - run: CFLAGS="${DEFAULT_CFLAGS}" ./configure + - run: make -j ${{ env.CPUS }} + - run: ./src/suricata --build-info # check if we can run Suricata + ubuntu-22-04-dpdk-build: name: Ubuntu 22.04 (DPDK Build) runs-on: ubuntu-22.04 diff --git a/Makefile.am b/Makefile.am index b60180de2aa1..30896e9bf26f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = ChangeLog COPYING LICENSE suricata.yaml.in \ lua \ acsite.m4 \ scripts/generate-images.sh \ + .github/workflows/builds.yml \ examples/plugins SUBDIRS = $(HTP_DIR) rust src qa rules doc contrib etc python ebpf \ $(SURICATA_UPDATE_DIR) diff --git a/scripts/docs-almalinux9-minimal-build.sh b/scripts/docs-almalinux9-minimal-build.sh new file mode 100755 index 000000000000..2b569ff72dc9 --- /dev/null +++ b/scripts/docs-almalinux9-minimal-build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Serves for RPM-based docs and is verified by Github Actions + +# install-guide-documentation tag start: Minimal RPM-based dependencies +sudo dnf install -y rustc cargo cbindgen +sudo dnf install -y gcc gcc-c++ jansson-devel libpcap-devel \ + libyaml-devel make pcre2-devel zlib-devel +# install-guide-documentation tag end: Minimal RPM-based dependencies \ No newline at end of file diff --git a/scripts/docs-ubuntu-debian-minimal-build.sh b/scripts/docs-ubuntu-debian-minimal-build.sh new file mode 100755 index 000000000000..41d163a94734 --- /dev/null +++ b/scripts/docs-ubuntu-debian-minimal-build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Serves for Ubuntu/Debian docs and is verified by Github Actions + +# install-guide-documentation tag start: Minimal dependencies +sudo apt -y install autoconf automake build-essential cargo \ + cbindgen libjansson-dev libpcap-dev libpcre2-dev libtool \ + libyaml-dev make pkg-config rustc zlib1g-dev +# install-guide-documentation tag end: Minimal dependencies \ No newline at end of file