Skip to content

Commit

Permalink
CI: WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanNardi committed May 23, 2024
1 parent d1a59c0 commit 2c2f366
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 1 deletion.
96 changes: 96 additions & 0 deletions .github/workflows/build_non_x86_64_arch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Build on non-x86_64 archs
on: [push, pull_request]

jobs:
build_job:
# The host should always be linux
runs-on: ubuntu-22.04
name: Build on ${{ matrix.distro }} ${{ matrix.arch }}

# Run steps on a matrix of 4 arch/distro combinations
strategy:
matrix:
include:
- arch: aarch64
distro: ubuntu22.04
msan: "--with-sanitizer"
pcre: "--with-pcre2"
maxminddb: "--with-maxminddb"
- arch: armv7
distro: ubuntu22.04
msan: "--with-sanitizer"
pcre: "--with-pcre2"
maxminddb: "--with-maxminddb"
- arch: s390x
distro: ubuntu22.04
msan: "--with-sanitizer"
pcre: "--with-pcre2"
maxminddb: "--with-maxminddb"
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2
name: Build and run tests
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}

# Not required, but speeds up builds
githubToken: ${{ github.token }}

# Create an artifacts directory
setup: |
mkdir -p "${PWD}/artifacts"
# Mount the artifacts directory as /artifacts in the container
dockerRunArgs: |
--volume "${PWD}/artifacts:/artifacts"
# Pass some environment variables to the container
env: | # YAML, but pipe character is necessary
artifact_name: git-${{ matrix.distro }}_${{ matrix.arch }}
# The shell to run commands with in the container
shell: "/bin/bash -i"

# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
case "${{ matrix.distro }}" in
ubuntu*|jessie|stretch|buster|bullseye)
apt-get update -q -y
apt-get install -q -y make git wdiff colordiff autoconf automake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev libpcre3-dev libmaxminddb-dev rrdtool librrd-dev parallel
env_parallel --install
;;
fedora*)
dnf -y update
#TODO
;;
alpine*)
apk update
#TODO
;;
esac
run: |
lscpu | grep Endian
lscpu | grep Architecture
git config --global --add safe.directory $(realpath .)
NDPI_CFLAGS='-Wextra -Werror' ./autogen.sh --enable-option-checking=fatal --enable-debug-messages --enable-tls-sigs ${{ matrix.pcre }} ${{ matrix.maxminddb }} ${{ matrix.msan }}
make -j $(nproc) all
make -C example ndpiSimpleIntegration
make -C rrdtool
echo ${SHELL}
/bin/bash -c "NDPI_FORCE_PARALLEL_UTESTS=1 NDPI_SKIP_PARALLEL_BAR=1 ./tests/do.sh"
./tests/do-unit.sh
./tests/do-dga.sh
- name: Show the artifact
# Items placed in /artifacts in the container will be in
# ${PWD}/artifacts on the host.
run: |
ls -al "${PWD}/artifacts"
2 changes: 1 addition & 1 deletion tests/do.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ export -f run_single_pcap

check_results() {
if [ $FORCE_PARALLEL_UTESTS -eq 1 ]; then
if [ $SKIP_PARALLEL_BAR -eq 1 ]; then
if [ $SKIP_PARALLEL_BAR -eq 1 ]; then
parallel --tag "run_single_pcap" ::: $PCAPS
else
parallel --bar --tag "run_single_pcap" ::: $PCAPS
Expand Down

0 comments on commit 2c2f366

Please sign in to comment.