Separate CI per platform (#3339)

This commit is contained in:
sauwming 2023-01-25 18:12:10 +07:00 committed by GitHub
parent 4e75f68520
commit 662965f2f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 441 additions and 416 deletions

187
.github/workflows/ci-linux.yml vendored Normal file
View File

@ -0,0 +1,187 @@
name: CI Linux
on: [push, pull_request]
jobs:
build-ubuntu-default:
# checking pure lib source distribution with plain configure & make
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: make
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="-g -fPIC" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- name: unit tests
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
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: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
- name: make
run: make
- name: unit tests
run: make pjnath-test
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: CFLAGS="-g" LDFLAGS="-rdynamic" ./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
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="-g -fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- name: unit tests
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
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: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
- name: make
run: make
- name: unit tests
run: make pjnath-test
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: CFLAGS="-g" LDFLAGS="-rdynamic" ./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

203
.github/workflows/ci-mac.yml vendored Normal file
View File

@ -0,0 +1,203 @@
name: CI Mac
on: [push, pull_request]
jobs:
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
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 openssl@1.1 opencore-amr swig sipp
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-g -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: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- name: unit tests
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
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 openssl@1.1 opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" ./configure
- name: make
run: make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjnath-test
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 openssl@1.1 opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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: install dependencies
run: brew install openssl@1.1 swig
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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: install dependencies
run: brew install swig
- 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
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 openssl@1.1 openh264 libvpx opencore-amr swig 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="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-g -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: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- name: unit tests
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
mac-video-openh264-2:
# video 2: running pjnath test
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install openssl@1.1 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="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" ./configure
- name: make
run: make
- name: disable firewall
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
- name: unit tests
run: make pjnath-test
mac-video-openh264-3:
# video 3: running pjsip test
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: brew install openssl@1.1 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="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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 openssl@1.1 x264 libvpx nasm swig
- 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@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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 openssl@1.1 libvpx swig
- 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@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make

View File

@ -1,392 +1,6 @@
name: C/C++ CI
name: CI Windows
on: [push, pull_request]
jobs:
build-ubuntu-default:
# checking pure lib source distribution with plain configure & make
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: make
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="-g -fPIC" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- 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: CFLAGS="-g" LDFLAGS="-rdynamic" ./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: CFLAGS="-g" LDFLAGS="-rdynamic" ./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="-g -fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
- name: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- 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: CFLAGS="-g" LDFLAGS="-rdynamic" ./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: CFLAGS="-g" LDFLAGS="-rdynamic" ./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 openssl@1.1 opencore-amr swig sipp
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-g -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: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- 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 openssl@1.1 opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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 openssl@1.1 opencore-amr
- name: config site
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
- name: configure
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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: install dependencies
run: brew install openssl@1.1 swig
- name: configure
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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: install dependencies
run: brew install swig
- 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 openssl@1.1 openh264 libvpx opencore-amr swig 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="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-g -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: set up Python 2.7 for pjsua test
uses: actions/setup-python@v2
with:
python-version: 2.7
- 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 openssl@1.1 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="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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 openssl@1.1 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="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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 openssl@1.1 x264 libvpx nasm swig
- 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@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/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 openssl@1.1 libvpx swig
- 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@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-fPIC" ./configure
- name: make
run: make
- name: swig bindings
run: cd pjsip-apps/src/swig && make
build-windows-default:
runs-on: windows-latest
steps:
@ -421,7 +35,7 @@ jobs:
msbuild swig_java_pjsua2.vcxproj /p:PlatformToolset=v143 /p:Configuration=Debug /p:Platform=win32 /p:UseEnv=true
shell: cmd
build-windows-with-openssl-unit-test-1:
windows-with-openssl-unit-test-1:
runs-on: windows-latest
steps:
- uses: actions/checkout@master
@ -465,7 +79,7 @@ jobs:
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
shell: powershell
build-windows-with-openssl-unit-test-2:
windows-with-openssl-unit-test-2:
runs-on: windows-latest
steps:
- uses: actions/checkout@master
@ -559,7 +173,7 @@ jobs:
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
build-windows-with-video-libvpx-unit-test-1:
windows-with-video-libvpx-unit-test-1:
runs-on: windows-latest
steps:
- uses: actions/checkout@master

4
.gitignore vendored
View File

@ -68,6 +68,10 @@ tests/pjsua/wavs/tmp*.wav
tests/pjsua/tools/cmp_wav
tests/pjsua/tools/cmp_wav.dSYM
tests/pjsua/logs
tests/fuzz/*
!tests/fuzz/**/
!tests/fuzz/*.*
tests/fuzz/*.o
# benchmark output
*bench*.htm

View File

@ -119,7 +119,7 @@ pjsip-test: pjsip/bin/pjsip-test-$(TARGET_NAME)
cd pjsip/build && ../bin/pjsip-test-$(TARGET_NAME)
pjsua-test: cmp_wav
cd tests/pjsua && python runall.py
cd tests/pjsua && python runall.py -t 2
cmp_wav:
cd tests/pjsua/tools && make

View File

@ -84,6 +84,7 @@ for f in os.listdir("scripts-sipp"):
resume_script=""
retry_num=0
shell_cmd=""
with_log=True
@ -104,6 +105,9 @@ while len(sys.argv):
print " If this argument is omited, tests will start from the beginning."
print " --disable,-d TEST_NAME"
print " Disable a specific test that contains the specified TEST_NAME."
print " --retry,-t RETRY_NUM"
print " Retry a specific test RETRY_NUM times before marking it as failed."
print " Default is 0 (no retry)."
print " --shell,-s SHELL"
print " Run the tests with the specified SHELL cmd. This can also be"
print " used to run the test with ccdash. Example:"
@ -123,6 +127,15 @@ while len(sys.argv):
sys.argv.pop(0)
sys.stderr.write("Error: argument value required")
sys.exit(1)
elif sys.argv[0] == '-t' or sys.argv[0] == '--retry':
if len(sys.argv) > 1:
retry_num=int(sys.argv[1])
sys.argv.pop(0)
sys.argv.pop(0)
else:
sys.argv.pop(0)
sys.stderr.write("Error: argument value required")
sys.exit(1)
elif sys.argv[0] == '--list':
sys.argv.pop(0)
for t in tests:
@ -157,7 +170,7 @@ while len(sys.argv):
else:
sys.argv.pop(0)
sys.stderr.write("Error: argument value required")
sys.exit(1)
sys.exit(1)
elif sys.argv[0] == '--no-log':
sys.argv.pop(0)
with_log=False
@ -188,31 +201,35 @@ for t in tests:
cmdline = "python run.py " + argv_st + t
if shell_cmd:
cmdline = "%s '%s'" % (shell_cmd, cmdline)
t0 = time.time()
msg = "Running %3d/%d: %s..." % (tests_cnt+1, total_cnt, cmdline)
sys.stdout.write(msg)
sys.stdout.flush()
if with_log:
logname = re.search(".*\s+(.*)", t).group(1)
logname = re.sub("[\\\/]", "_", logname)
logname = re.sub("\.py$", ".log", logname)
logname = re.sub("\.xml$", ".log", logname)
logname = "logs/" + logname
else:
logname = os.devnull
ret = os.system(cmdline + " > " + logname)
t1 = time.time()
if ret != 0:
dur = int(t1 - t0)
print " failed!! [" + str(dur) + "s]"
for i in range(1, retry_num+2):
t0 = time.time()
msg = "Running %3d/%d (#%d): %s..." % (tests_cnt+1, total_cnt, i, cmdline)
sys.stdout.write(msg)
sys.stdout.flush()
if with_log:
lines = open(logname, "r").readlines()
print ''.join(lines)
print "Log file: '" + logname + "'."
fails_cnt += 1
else:
dur = int(t1 - t0)
print " ok [" + str(dur) + "s]"
logname = re.search(".*\s+(.*)", t).group(1)
logname = re.sub("[\\\/]", "_", logname)
logname = re.sub("\.py$", ".log", logname)
logname = re.sub("\.xml$", ".log", logname)
logname = "logs/" + logname
else:
logname = os.devnull
ret = os.system(cmdline + " > " + logname)
t1 = time.time()
if ret != 0:
dur = int(t1 - t0)
print " failed!! [" + str(dur) + "s]"
if (i < retry_num + 1):
continue
if with_log:
lines = open(logname, "r").readlines()
print ''.join(lines)
print "Log file: '" + logname + "'."
fails_cnt += 1
else:
dur = int(t1 - t0)
print " ok [" + str(dur) + "s]"
break
tests_cnt += 1
if fails_cnt == 0: