ci: replace EOL CentOS Stream 8 with Rocky Linux 8 #245
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and tests | |
on: | |
# Ignore changes in extra plugins (as they are not tested here) | |
push: | |
paths-ignore: | |
- 'extra_plugins/**' | |
pull_request: | |
paths-ignore: | |
- 'extra_plugins/**' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
image: | |
- 'ubuntu:20.04' | |
- 'ubuntu:22.04' | |
- 'debian:buster' | |
- 'debian:bullseye' | |
- 'debian:bookworm' | |
- 'rockylinux:8' | |
- 'oraclelinux:8' | |
- 'oraclelinux:9' | |
name: Build on ${{ matrix.image }} | |
container: ${{ matrix.image }} | |
steps: | |
# Dependencies --------------------------------------------------------------------------- | |
- name: Install dependencies for libfds and IPFIXcol2 (Ubuntu/Debian) | |
if: startsWith(matrix.image, 'ubuntu') || startsWith(matrix.image, 'debian') | |
run: | | |
apt-get update | |
apt-get -y install git gcc g++ cmake make libxml2-dev liblz4-dev libzstd-dev | |
apt-get -y install python3-docutils zlib1g-dev pkg-config | |
apt-get -y install librdkafka-dev | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: Enable additional repositories (Rocky Linux) | |
if: contains(matrix.image, 'rockylinux') | |
run: | | |
dnf -y install 'dnf-command(config-manager)' | |
dnf config-manager --set-enabled appstream powertools | |
- name: Enable additional repositories (Oracle Linux 8) | |
if: contains(matrix.image, 'oraclelinux:8') | |
run: | | |
dnf -y install 'dnf-command(config-manager)' | |
dnf config-manager --set-enabled ol8_appstream ol8_codeready_builder | |
- name: Enable additional repositories (Oracle Linux 9) | |
if: contains(matrix.image, 'oraclelinux:9') | |
run: | | |
dnf -y install 'dnf-command(config-manager)' | |
dnf config-manager --set-enabled ol9_appstream ol9_codeready_builder | |
- name: Enable EPEL (Rocky Linux) | |
if: contains(matrix.image, 'rockylinux') | |
run: | | |
yum -y install epel-release | |
- name: Enable EPEL (Oracle Linux 8) | |
if: contains(matrix.image, 'oraclelinux:8') | |
run: | | |
dnf -y install oracle-epel-release-el8 | |
- name: Enable EPEL (Oracle Linux 9) | |
if: contains(matrix.image, 'oraclelinux:9') | |
run: | | |
dnf -y install oracle-epel-release-el9 | |
- name: Install dependencies for libfds and IPFIXcol2 (Rocky Linux, Oracle Linux) | |
if: contains(matrix.image, 'rockylinux') || contains(matrix.image, 'oraclelinux') | |
run: | | |
yum -y install git gcc gcc-c++ cmake make libxml2-devel lz4-devel libzstd-devel | |
yum -y install zlib-devel pkgconfig librdkafka-devel | |
yum -y install python3-docutils || yum -y install python-docutils | |
# Checkout repository -------------------------------------------------------------------- | |
- uses: actions/checkout@v2 | |
# Build libfds library ------------------------------------------------------------------ | |
# Note: Master against master branch. Otherwise against debug branch. | |
- name: Checkout libfds library - master branch | |
if: github.ref == 'refs/heads/master' | |
run: git clone --branch master https://github.com/CESNET/libfds.git libfds_build | |
- name: Checkout libfds library - devel branch | |
if: github.ref != 'refs/heads/master' | |
run: git clone --branch devel https://github.com/CESNET/libfds.git libfds_build | |
- name: Build and install libfds library | |
working-directory: libfds_build | |
run: | | |
mkdir build && cd build | |
cmake .. -DCMAKE_INSTALL_PREFIX=/usr | |
make && make install | |
# Build and test IPFIXcol2 --------------------------------------------------------------- | |
- name: Build and install IPFIXcol2 | |
run: | | |
mkdir build && cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTS=1 | |
make && make install | |
- name: Run tests | |
run: cd build && make test | |
- name: Try to run IPFIXcol2 | |
run: | | |
ipfixcol2 -V | |
ipfixcol2 -h | |
ipfixcol2 -L -v |