Build with GitHub Actions
This commit is contained in:
parent
444fd8180d
commit
0fba09246b
|
@ -0,0 +1,105 @@
|
|||
name: build
|
||||
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-18.04, macos-10.15]
|
||||
compiler: [gcc, clang]
|
||||
buildtool: [autotools, cmake]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Linux setup
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get install \
|
||||
g++-8 \
|
||||
clang-10 \
|
||||
autoconf \
|
||||
automake \
|
||||
autotools-dev \
|
||||
libtool \
|
||||
pkg-config \
|
||||
zlib1g-dev \
|
||||
libcunit1-dev \
|
||||
libssl-dev \
|
||||
libxml2-dev \
|
||||
libev-dev \
|
||||
libevent-dev \
|
||||
libjansson-dev \
|
||||
libjemalloc-dev \
|
||||
libc-ares-dev \
|
||||
cmake \
|
||||
cmake-data
|
||||
echo 'CPPFLAGS=-fsanitize=address' >> $GITHUB_ENV
|
||||
echo 'LDFLAGS=-fsanitize=address' >> $GITHUB_ENV
|
||||
- name: MacOS setup
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
brew install \
|
||||
libev \
|
||||
libevent \
|
||||
c-ares \
|
||||
cunit \
|
||||
libressl \
|
||||
autoconf \
|
||||
automake \
|
||||
pkg-config \
|
||||
libtool
|
||||
echo 'PKG_CONFIG_PATH=/usr/local/opt/libressl/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig' >> $GITHUB_ENV
|
||||
# This fixes infamous 'stdio.h not found' error.
|
||||
echo 'SDKROOT='"$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
|
||||
- name: Setup clang (Linux)
|
||||
if: runner.os == 'Linux' && matrix.compiler == 'clang'
|
||||
run: |
|
||||
echo 'CC=clang-10' >> $GITHUB_ENV
|
||||
echo 'CXX=clang++-10' >> $GITHUB_ENV
|
||||
- name: Setup clang (MacOS)
|
||||
if: runner.os == 'macOS' && matrix.compiler == 'clang'
|
||||
run: |
|
||||
echo 'CC=clang' >> $GITHUB_ENV
|
||||
echo 'CXX=clang++' >> $GITHUB_ENV
|
||||
- name: Setup gcc (Linux)
|
||||
if: runner.os == 'Linux' && matrix.compiler == 'gcc'
|
||||
run: |
|
||||
echo 'CC=gcc-8' >> $GITHUB_ENV
|
||||
echo 'CXX=g++-8' >> $GITHUB_ENV
|
||||
- name: Setup gcc (MacOS)
|
||||
if: runner.os == 'macOS' && matrix.compiler == 'gcc'
|
||||
run: |
|
||||
echo 'CC=gcc' >> $GITHUB_ENV
|
||||
echo 'CXX=g++' >> $GITHUB_ENV
|
||||
- name: Setup git submodules
|
||||
run: |
|
||||
git submodule update --init
|
||||
- name: Configure autotools
|
||||
if: matrix.buildtool == 'autotools'
|
||||
run: |
|
||||
autoreconf -i
|
||||
./configure --enable-werror --with-mruby
|
||||
- name: Configure cmake
|
||||
if: matrix.buildtool == 'cmake'
|
||||
run: |
|
||||
cmake -DENABLE_WERROR=1 -DWITH_MRUBY=1 -DWITH_NEVERBLEED=1 -DCPPFLAGS="$CPPFLAGS" -DLDFLAGS="$LDFLAGS" .
|
||||
- name: Build nghttp2 with autotools
|
||||
if: matrix.buildtool == 'autotools'
|
||||
run: |
|
||||
make distcheck \
|
||||
DISTCHECK_CONFIGURE_FLAGS="--with-mruby --with-neverbleed --enable-werror CPPFLAGS=\"$CPPFLAGS\" LDFLAGS=\"$LDFLAGS\""
|
||||
- name: Build nghttp2 with cmake
|
||||
if: matrix.buildtool == 'cmake'
|
||||
run: |
|
||||
make
|
||||
make check
|
||||
- name: Integration test
|
||||
# Integration tests for nghttpx; autotools erases build
|
||||
# artifacts.
|
||||
if: matrix.buildtool == 'cmake'
|
||||
run: |
|
||||
cd integration-tests
|
||||
make itprep it
|
|
@ -5,8 +5,9 @@ if [ -d "$libdir/.libs" ]; then
|
|||
libdir="$libdir/.libs"
|
||||
fi
|
||||
|
||||
export CGO_CFLAGS="-I@abs_top_srcdir@/lib/includes -I@abs_top_builddir@/lib/includes"
|
||||
export CGO_LDFLAGS="-L$libdir"
|
||||
export CGO_CFLAGS="-I@abs_top_srcdir@/lib/includes -I@abs_top_builddir@/lib/includes @CFLAGS@"
|
||||
export CGO_CPPFLAGS="@CPPFLAGS@"
|
||||
export CGO_LDFLAGS="-L$libdir @LDFLAGS@"
|
||||
export LD_LIBRARY_PATH="$libdir"
|
||||
export GODEBUG=cgocheck=0
|
||||
"$@"
|
||||
|
|
Loading…
Reference in New Issue