Skip to content

Commit

Permalink
Support Msgpack-C, add RedHat to test matrix
Browse files Browse the repository at this point in the history
* Add support for libmsgpack-c (installed from source)
* Add Red Hat UBI 8.8 and UBI 9.2 to the build matrix
* Shorten GHA job names
  • Loading branch information
nicolasff committed Nov 4, 2023
1 parent b31fabe commit 4b66bcf
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 12 deletions.
39 changes: 31 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ name: Build and test (OS matrix)
on: [push, pull_request, workflow_dispatch]

jobs:

build-and-test-ubuntu:
validation-linux:
strategy:
fail-fast: false # don't cancel other jobs in the matrix if one fails
matrix:
Expand All @@ -22,6 +21,12 @@ jobs:
- runner: ubuntu-20.04
container: ubuntu:23.04
os_name: ubuntu-23.04
- runner: ubuntu-20.04
container: redhat/ubi8:8.8
os_name: redhat-8.8
- runner: ubuntu-20.04
container: redhat/ubi9:9.2
os_name: redhat-9.2

runs-on: ${{ matrix.runner }}

Expand All @@ -36,14 +41,33 @@ jobs:
steps:
- uses: actions/checkout@v3

- name: Fetch package lists
run: apt-get -y update

- name: Install dependencies
- name: Fetch package lists and install dependencies (Ubuntu)
if: contains(matrix.os_name, 'ubuntu-')
run: |
apt-get -y update
DEBIAN_FRONTEND=noninteractive apt-get -y --allow-unauthenticated --allow-downgrades --allow-remove-essential --allow-change-held-packages \
install make gcc libevent-dev libmsgpack-dev curl uuid nodejs python3 python3-pip
# (using `rm` + `ln` since using `alternatives` doesn't work on both UBI 8 and UBI 9)
- name: Install dependencies (Red Hat)
if: contains(matrix.os_name, 'redhat-')
run: |
yum install -y --allowerasing make cmake gcc gcc-c++ libevent-devel git curl uuid nodejs python3.11 python3.11-pip
rm -f /usr/bin/python3 /usr/bin/pip3
ln -s $(which python3.11) /usr/bin/python3
ln -s $(which pip3.11) /usr/bin/pip3
- name: Install msgpack-c (Red Hat)
if: contains(matrix.os_name, 'redhat-')
run: |
cd /tmp
curl -sLO https://github.com/msgpack/msgpack-c/releases/download/c-6.0.0/msgpack-c-6.0.0.tar.gz
tar -xzf msgpack-c-6.0.0.tar.gz
cd msgpack-c-6.0.0
cmake -DMSGPACK_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 .
make
make install
- name: Fix pip3 on Ubuntu 23.04
if: matrix.os_name == 'ubuntu-23.04'
run: rm -f /usr/lib/python$(python3 --version | cut -d ' ' -f 2 | cut -d '.' -f 1,2)/EXTERNALLY-MANAGED
Expand Down Expand Up @@ -73,8 +97,7 @@ jobs:
path: webdis.log



build-and-test-macos:
validation-macos:
strategy:
fail-fast: false
matrix:
Expand Down
16 changes: 12 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,18 @@ ifeq ($(strip $(MSGPACKC_LD)),0)
FORMAT_OBJS += src/formats/msgpack.o
CFLAGS += -DMSGPACK=1
LDFLAGS += -lmsgpackc
endif
endif
endif
endif
else
# check for MessagePack-C (note the dash)
MSGPACK_C_LD=$(shell ld -lmsgpack-c >/dev/null 2>/dev/null; echo $$?)
ifeq ($(strip $(MSGPACK_C_LD)),0)
FORMAT_OBJS += src/formats/msgpack.o
CFLAGS += -DMSGPACK=1
LDFLAGS += -lmsgpack-c
endif # MSGPACK_C_LD
endif # MSGPACKC_LD
endif # MSGPACK_OSX_LIB
endif # MSGPACKC_LIB
endif # MSGPACK_LIB

# if `make` is run with DEBUG=1, include debug symbols
DEBUG_FLAGS=
Expand Down

0 comments on commit 4b66bcf

Please sign in to comment.