jobs:
- prep:
- name: Prepare Build
+ prepare-deps:
+ name: Prepare dependencies
runs-on: ubuntu-latest
steps:
+ - name: Cache ~/.cargo
+ uses: actions/cache@v1
+ with:
+ path: ~/.cargo
+ key: cargo
- run: sudo apt update && sudo apt -y install jq curl
- name: Parse repo and branch information
env:
cd ..
fi
tar zcf suricata-verify.tar.gz suricata-verify
- - run: rm -rf libhtp suricata-update suricata-verify
- - uses: actions/upload-artifact@v2
- name: Uploading prep archive
+ - name: Cleaning up
+ run: rm -rf libhtp suricata-update suricata-verify
+ - name: Uploading prep archive
+ uses: actions/upload-artifact@v2
+ with:
+ name: prep
+ path: .
+
+ prepare-cbindgen:
+ name: Prepare cbindgen
+ runs-on: ubuntu-latest
+ steps:
+ - name: Cache ~/.cargo
+ uses: actions/cache@v1
+ with:
+ path: ~/.cargo
+ key: cbindgen
+ - name: Installing Rust
+ run: |
+ curl https://sh.rustup.rs -sSf | sh -s -- -y
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+ rustup target add x86_64-unknown-linux-musl
+ - name: Buliding static cbindgen for Linux
+ run: |
+ cargo install --target x86_64-unknown-linux-musl --debug cbindgen
+ cp $HOME/.cargo/bin/cbindgen .
+ - name: Uploading prep archive
+ uses: actions/upload-artifact@v2
with:
name: prep
path: .
name: CentOS 8
runs-on: ubuntu-latest
container: centos:8
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
- name: Cache cargo registry
- run: tar xvf prep/libhtp.tar.gz
- run: tar xvf prep/suricata-update.tar.gz
- run: tar xvf prep/suricata-verify.tar.gz
-
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Install system packages
run: |
yum -y install dnf-plugins-core
texlive-upquote \
texlive-capt-of \
texlive-needspace \
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Configuring
run: |
./autogen.sh
name: Fedora 33 (debug, clang, asan, wshadow, rust-strict)
runs-on: ubuntu-latest
container: fedora:33
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
sudo \
which \
zlib-devel
- - run: |
- cargo install --debug cbindgen
- echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: ./autogen.sh
- run: CC="clang" CFLAGS="$DEFAULT_CFLAGS -Wshadow -fsanitize=address -fno-omit-frame-pointer" ./configure --enable-debug --enable-unittests --disable-shared --enable-rust-strict
env:
name: Fedora 32 (debug, clang, asan, wshadow, rust-strict)
runs-on: ubuntu-latest
container: fedora:32
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
sudo \
which \
zlib-devel
- - run: |
- cargo install --debug cbindgen
- echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: tar xf prep/libhtp.tar.gz
- run: ./autogen.sh
- run: CC="clang" CFLAGS="$DEFAULT_CFLAGS -Wshadow -fsanitize=address -fno-omit-frame-pointer" ./configure --enable-debug --enable-unittests --disable-shared --enable-rust-strict
name: Fedora 32 (no jansson)
runs-on: ubuntu-latest
container: fedora:32
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
sudo \
which \
zlib-devel
- - run: |
- cargo install --debug cbindgen
- echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: ./autogen.sh
- run: |
if ./configure; then
name: Ubuntu 20.04 (no nss, no nspr)
runs-on: ubuntu-latest
container: ubuntu:20.04
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
- name: Install dependencies
run: |
zlib1g \
zlib1g-dev \
exuberant-ctags
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: ./autogen.sh
- run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-unittests --disable-nss --disable-nspr
- run: make -j2
name: Ubuntu 20.04 (-DNDEBUG)
runs-on: ubuntu-latest
container: ubuntu:20.04
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
- name: Install dependencies
zlib1g \
zlib1g-dev \
exuberant-ctags
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: ./autogen.sh
- run: CFLAGS="$DEFAULT_CFLAGS -DNDEBUG" ./configure --enable-unittests
- run: make -j2
name: Ubuntu 18.04 (Debug Validation)
runs-on: ubuntu-18.04
container: ubuntu:18.04
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
zlib1g \
zlib1g-dev \
exuberant-ctags
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: ./autogen.sh
- run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-debug-validation
- run: make -j2
name: Ubuntu 18.04 (Cocci)
runs-on: ubuntu-18.04
container: ubuntu:18.04
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
run: |
add-apt-repository -y ppa:npalix/coccinelle
apt -y install coccinelle
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- run: ./autogen.sh
- run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-unittests --enable-coccinelle
- run: make -j2
name: Ubuntu 18.04 (Fuzz)
runs-on: ubuntu-18.04
container: ubuntu:18.04
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
software-properties-common \
zlib1g \
zlib1g-dev
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
name: prep
path: prep
- run: tar xf prep/libhtp.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH - run: tar xf prep/libhtp.tar.gz
- run: ./autogen.sh
- run: AFL_HARDEN=1 ac_cv_func_realloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes CFLAGS="-fsanitize=address -fno-omit-frame-pointer" CXXFLAGS=$CFLAGS CC=afl-clang-fast CXX=afl-clang-fast++ ./configure --enable-fuzztargets --disable-shared
- run: AFL_HARDEN=1 make -j2
name: Debian 10
runs-on: ubuntu-latest
container: debian:10
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
# Cache Rust stuff.
- name: Cache cargo registry
- name: Install Rust
run: curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain $RUST_VERSION_KNOWN -y
- run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
path: prep
- run: tar xf prep/libhtp.tar.gz
- run: tar xf prep/suricata-update.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
- run: ./autogen.sh
- run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-unittests --enable-fuzztargets
- run: make -j2
name: Debian 9
runs-on: ubuntu-latest
container: debian:9
- needs: prep
+ needs: [prepare-deps, prepare-cbindgen]
steps:
- run: |
apt update
- name: Install Rust
run: curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain $RUST_VERSION_KNOWN -y
- run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- - name: Install cbindgen
- run: cargo install --force --debug --version 0.14.1 cbindgen
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
path: prep
- run: tar xf prep/libhtp.tar.gz
- run: tar xf prep/suricata-update.tar.gz
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
- run: ./autogen.sh
- run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-unittests
- run: make -j2
macos-latest:
name: MacOS Latest
runs-on: macos-latest
- needs: prep
+ needs: [prepare-deps]
steps:
# Cache Rust stuff.
- name: Cache cargo registry
windows-msys2-mingw64:
name: Windows MSYS2 MINGW64
runs-on: windows-latest
- needs: prep
+ needs: [prepare-deps]
defaults:
run:
shell: msys2 {0}