aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build_docker.yml
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2025-01-17 11:46:40 +0100
committerGitHub <noreply@github.com>2025-01-17 11:46:40 +0100
commit6b430b6ce2eb1dd3f606d40406d6891825194003 (patch)
tree8a9a94378b42f29cdfbea5a1f4486c3e4eec08fe /.github/workflows/build_docker.yml
parentc8f8d51dd2ed90fce0dd20fc8c54ffdea20a4eb4 (diff)
CI: use Linux arm64 hosted runners provided directly from GitHub (#2681)
See: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/ Native runners are incredibly faster that using docker (as expected...).
Diffstat (limited to '.github/workflows/build_docker.yml')
-rw-r--r--.github/workflows/build_docker.yml83
1 files changed, 83 insertions, 0 deletions
diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml
new file mode 100644
index 000000000..9ba9c8aff
--- /dev/null
+++ b/.github/workflows/build_docker.yml
@@ -0,0 +1,83 @@
+name: ARM builds with docker
+on:
+ push:
+ branches:
+ - dev
+ pull_request:
+ branches:
+ - dev
+ types: [opened, synchronize, reopened]
+ release:
+ types: [created]
+ schedule:
+ # At the end of every day
+ - cron: '0 0 * * *'
+jobs:
+
+ test:
+ name: Ubuntu ${{ matrix.arch }}
+ runs-on: ubuntu-latest
+ env:
+ CFLAGS: -Wextra -Werror -DNDPI_EXTENDED_SANITY_CHECKS
+ # Idea to have significant faster tests while pushing/merging: test all pcaps only on schedule runs; otherwise tests only the pcaps updated/added recently
+ NDPI_TEST_ONLY_RECENTLY_UPDATED_PCAPS: ${{ (github.event_name == 'schedule') && '0' || '1' }}
+ strategy:
+ fail-fast: true
+ matrix:
+ arch: ["armhf", "s390x"]
+ steps:
+ - name: Setup multiarch/qemu-user-static
+ run: |
+ docker run --rm --privileged multiarch/qemu-user-static:register --reset
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
+ - name: Display qemu specified architecture (armhf - little endian)
+ if: startsWith(matrix.arch, 'armhf')
+ uses: docker://multiarch/ubuntu-core:armhf-bionic
+ with:
+ args: >
+ bash -c
+ "uname -a &&
+ lscpu | grep Endian
+ "
+ - name: Configure, compile and test using qemu for the specified architecture (armhf - little endian)
+ if: startsWith(matrix.arch, 'armhf')
+ uses: docker://multiarch/ubuntu-core:armhf-bionic
+ with:
+ args: >
+ bash -c
+ "apt-get -y update &&
+ apt-get -y install git wdiff colordiff autoconf automake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev rrdtool librrd-dev &&
+ git config --global --add safe.directory $(realpath .) &&
+ env CC=gcc ./autogen.sh --enable-option-checking=fatal --enable-debug-messages &&
+ make -j $(nproc) all &&
+ make -C example ndpiSimpleIntegration &&
+ make -C rrdtool &&
+ make check VERBOSE=1
+ "
+ - name: Display qemu specified architecture (s390x - big endian)
+ if: startsWith(matrix.arch, 's390x')
+ uses: docker://multiarch/ubuntu-core:s390x-bionic
+ with:
+ args: >
+ bash -c
+ "uname -a &&
+ lscpu | grep Endian
+ "
+ - name: Configure and compile using qemu for the specified architecture (s390x - big endian)
+ if: startsWith(matrix.arch, 's390x')
+ uses: docker://multiarch/ubuntu-core:s390x-bionic
+ with:
+ args: >
+ bash -c
+ "apt-get -y update &&
+ apt-get -y install git wdiff colordiff autoconf automake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev rrdtool librrd-dev &&
+ git config --global --add safe.directory $(realpath .) &&
+ env CC=gcc ./autogen.sh --enable-option-checking=fatal --enable-debug-messages &&
+ make -j $(nproc) all &&
+ make -C example ndpiSimpleIntegration &&
+ make -C rrdtool &&
+ make check VERBOSE=1
+ "
+