Add more CI tests on Ubuntu and Mac (#2329)

This commit is contained in:
sauwming 2020-03-10 16:45:54 +08:00 committed by GitHub
parent 68e5350335
commit 98f70c210f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 375 additions and 20 deletions

View File

@ -1,28 +1,370 @@
name: C/C++ CI
on: [push]
on: [push, pull_request]
jobs:
build:
build-ubuntu-default:
# checking pure lib source distribution with plain configure & make
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: |
sudo apt-get install -y sip-tester
sudo apt-get install -y libopencore-amrnb-dev
- name: config site
run: |
echo "#define PJMEDIA_SRTP_HAS_DTLS 1" > pjlib/include/pj/config_site.h
echo "#define PJMEDIA_HAS_G722_CODEC 1" >> pjlib/include/pj/config_site.h
echo "#define PJMEDIA_HAS_G7221_CODEC 1" >> pjlib/include/pj/config_site.h
echo "#define PJ_EXCLUDE_BENCHMARK_TESTS 1" >> pjlib/include/pj/config_site.h
echo "#define PJ_CLI_MAX_CHOICE_VAL 64" >> pjlib/include/pj/config_site.h
- name: configure
run: ./configure
- name: make
run: make
- name: unit test
run: make selftest
build-ubuntu-default-full-bundle-1:
# full bundle: enable all codecs + AEC + DTLS
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig sip-tester libopencore-amrnb-dev
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: unit tests
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
build-ubuntu-default-full-bundle-2:
# full bundle 2: running pjnath test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y libopencore-amrnb-dev
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: ./configure
- name: make
run: make
- name: unit tests
run: make pjnath-test
build-ubuntu-default-full-bundle-3:
# full bundle 3: running pjsip test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y libopencore-amrnb-dev
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: ./configure
- name: make
run: make
- name: unit tests
run: make pjsip-test
build-ubuntu-no-tls:
# no TLS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --disable-ssl
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
# build-ubuntu-openssl
# TLS: with OpenSSL (same as build-ubuntu-default)
build-ubuntu-gnu-tls:
# TLS: with GnuTLS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get update && sudo apt-get install -y --fix-missing swig libgnutls28-dev
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
build-ubuntu-video-openh264-1:
# video: video enabled with vpx and openh264
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig nasm sip-tester libvpx-dev libopencore-amrnb-dev
- name: get openh264
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
- name: build openh264
run: cd openh264 && make && sudo make install && sudo ldconfig
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: unit tests
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
build-ubuntu-video-openh264-2:
# video 2: running pjnath test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev
- name: get openh264
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
- name: build openh264
run: cd openh264 && make && sudo make install && sudo ldconfig
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: ./configure
- name: make
run: make
- name: unit tests
run: make pjnath-test
build-ubuntu-video-openh264-3:
# video: 3: running pjsip test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev
- name: get openh264
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
- name: build openh264
run: cd openh264 && make && sudo make install && sudo ldconfig
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: ./configure
- name: make
run: make
- name: unit tests
run: make pjsip-test
build-ubuntu-video-ffmpeg:
# video enabled with vpx and ffmpeg and x264
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: sudo apt-get install -y swig nasm libx264-dev libvpx-dev
- name: get ffmpeg
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
- name: configure ffmpeg
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
- name: build ffmpeg
run: cd FFmpeg && make -j10 && sudo make install
- name: config site
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
build-mac-default:
# checking pure lib source distribution with plain configure & make
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: make
build-mac-default-full-bundle-1:
# full bundle: enable all codecs + AEC + DTLS
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
build-mac-default-full-bundle-2:
# full bundle 2: running pjnath test
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
- name: make
run: make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjnath-test
build-mac-default-full-bundle-3:
# full bundle 3: running pjsip test
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
- name: make
run: make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjsip-test
# build-ubuntu-no-tls:
# no TLS (same as build-mac-default)
build-mac-openssl:
# TLS: with OpenSSL
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
build-mac-gnu-tls:
# TLS: with GnuTLS
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: configure
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/local/
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
build-mac-video-openh264-1:
# video: video enabled with vpx and openh264
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install openh264 libvpx opencore-amr sipp
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
build-mac-video-openh264-2:
# video 2: running pjnath test
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install openh264 libvpx opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
- name: make
run: make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjnath-test
build-mac-video-openh264-3:
# video 3: running pjsip test
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install openh264 libvpx opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
- name: make
run: make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjsip-test
build-mac-video-ffmpeg:
# video enabled with vpx and ffmpeg and x264
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install x264 libvpx nasm
- name: get ffmpeg
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
- name: configure ffmpeg
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
- name: build ffmpeg
run: cd FFmpeg && make -j10 && sudo make install
- name: config site
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
build-mac-video-vid-toolbox:
# video enabled with vpx and video toolbox
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install libvpx
- name: config site
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n#define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1\n" > pjlib/include/pj/config_site.h
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make

View File

@ -352,10 +352,10 @@
/**
* Maximum number of argument values of choice type.
* Default: 16
* Default: 64
*/
#ifndef PJ_CLI_MAX_CHOICE_VAL
# define PJ_CLI_MAX_CHOICE_VAL 16
# define PJ_CLI_MAX_CHOICE_VAL 64
#endif
/**

View File

@ -0,0 +1,11 @@
#define PJMEDIA_SRTP_HAS_DTLS 1
#define PJMEDIA_HAS_WEBRTC_AEC 1
#define PJMEDIA_CODEC_L16_HAS_8KHZ_MONO 1
#define PJMEDIA_CODEC_L16_HAS_8KHZ_STEREO 1
#define PJMEDIA_CODEC_L16_HAS_16KHZ_MONO 1
#define PJMEDIA_CODEC_L16_HAS_16KHZ_STEREO 1
#define PJMEDIA_CODEC_L16_HAS_48KHZ_MONO 1
#define PJMEDIA_CODEC_L16_HAS_48KHZ_STEREO 1
#define PJMEDIA_HAS_G7221_CODEC 1
#define PJMEDIA_HAS_G722_CODEC 1
#define PJ_EXCLUDE_BENCHMARK_TESTS 1

View File

@ -25,7 +25,9 @@
#define HAS_VID_DEV_TEST PJMEDIA_HAS_VIDEO
#define HAS_VID_PORT_TEST PJMEDIA_HAS_VIDEO
#define HAS_VID_CODEC_TEST PJMEDIA_HAS_VIDEO
#ifndef HAS_VID_CODEC_TEST
#define HAS_VID_CODEC_TEST PJMEDIA_HAS_VIDEO
#endif
#define HAS_SDP_NEG_TEST 1
#define HAS_JBUF_TEST 1
#define HAS_MIPS_TEST 1