703 lines
27 KiB
YAML
703 lines
27 KiB
YAML
name: C/C++ CI
|
|
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 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/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/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 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/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="-g -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: install dependencies
|
|
run: brew install swig
|
|
- 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: 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 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/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/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 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/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="-g -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 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/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 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/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-windows-default:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: get swig
|
|
run: Invoke-WebRequest -Uri "https://nchc.dl.sourceforge.net/project/swig/swigwin/swigwin-4.0.1/swigwin-4.0.1.zip" -OutFile ".\swigwin.zip"
|
|
shell: powershell
|
|
- name: expand swig
|
|
run: |
|
|
Expand-Archive -LiteralPath .\swigwin.zip -DestinationPath .\swigwin\; pwd
|
|
cd swigwin\swigwin-4.0.1
|
|
Add-Content ..\..\swig_path.txt $pwd.Path
|
|
shell: powershell
|
|
- name: config site
|
|
run:
|
|
type nul > pjlib/include/pj/config_site.h
|
|
shell: cmd
|
|
- name: MSBuild
|
|
run: |
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Debug /p:Platform=win32
|
|
shell: cmd
|
|
- name: build swig
|
|
run: |
|
|
set /P SWIG_PATH=<swig_path.txt
|
|
set PATH=%PATH%;%SWIG_PATH%
|
|
dir pjlib/include/pj/config_site.h
|
|
type pjlib/include/pj/config_site.h
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
set INCLUDE=%INCLUDE%;%JAVA_HOME%\include;%JAVA_HOME%\include\win32
|
|
cd pjsip-apps/build
|
|
msbuild swig_java_pjsua2.vcxproj /p:PlatformToolset=v142 /p:Configuration=Debug /p:Platform=win32 /p:UseEnv=true
|
|
shell: cmd
|
|
|
|
build-windows-with-openssl-unit-test-1:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: get openssl
|
|
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
|
shell: powershell
|
|
- name: expand openssl
|
|
run: |
|
|
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\;
|
|
cd openssl_build\openssl-1.1\x86
|
|
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check openssl folder
|
|
run: |
|
|
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
dir %OPENSSL_DIR%\include
|
|
dir %OPENSSL_DIR%\lib
|
|
shell: cmd
|
|
- name: config site
|
|
run:
|
|
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
shell: powershell
|
|
- name: check VsDevCmd.bat
|
|
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
shell: cmd
|
|
- name: MSBuild
|
|
working-directory: .
|
|
run: |
|
|
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
|
|
set LIB=%LIB%;%OPENSSL_DIR%\lib
|
|
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
shell: cmd
|
|
- name: unit tests
|
|
run: |
|
|
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
|
$env:PATH+=";$env:OPENSSL_DIR\bin"
|
|
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe
|
|
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe
|
|
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
|
|
shell: powershell
|
|
|
|
build-windows-with-openssl-unit-test-2:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: get openssl
|
|
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
|
shell: powershell
|
|
- name: expand openssl
|
|
run: |
|
|
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd
|
|
cd openssl_build\openssl-1.1\x86
|
|
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check openssl folder
|
|
run: |
|
|
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
dir "%OPENSSL_DIR%\include"
|
|
dir "%OPENSSL_DIR%\lib"
|
|
shell: cmd
|
|
- name: config site
|
|
run:
|
|
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
shell: powershell
|
|
- name: check VsDevCmd.bat
|
|
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
shell: cmd
|
|
- name: MSBuild
|
|
working-directory: .
|
|
run: |
|
|
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
|
|
set LIB=%LIB%;%OPENSSL_DIR%\lib
|
|
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
shell: cmd
|
|
- name: unit tests
|
|
run: |
|
|
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
|
$env:PATH+=";$env:OPENSSL_DIR\bin"
|
|
cd pjsip/bin; ./pjsip-test-i386-Win32-vc14-Release.exe
|
|
shell: powershell
|
|
|
|
build-windows-gnu-tls:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: get gnutls
|
|
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/gnutls/releases/download/gnutls_3_6_11/libgnutls_gnutls_3_6_11_msvc14.zip" -Outfile ".\libgnutls.zip"
|
|
shell: powershell
|
|
- name: expand gnutls
|
|
run: |
|
|
Expand-Archive -LiteralPath .\libgnutls.zip -DestinationPath .\libgnutls_build\; pwd
|
|
cd libgnutls_build
|
|
Add-Content ..\libgnutls_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check gnutls folder
|
|
run: |
|
|
set /P LIBGNUTLS_DIR=<libgnutls_dir.txt
|
|
dir "%LIBGNUTLS_DIR%\include"
|
|
dir "%LIBGNUTLS_DIR%\lib\x86"
|
|
shell: cmd
|
|
- name: config site
|
|
run: |
|
|
echo "" > pjlib\include\pj\config_site.h
|
|
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
Add-Content config_site.h "#define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_GNUTLS"
|
|
shell: powershell
|
|
- name: check VsDevCmd.bat
|
|
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
shell: cmd
|
|
- name: MSBuild
|
|
working-directory: .
|
|
run: |
|
|
set /P LIBGNUTLS_DIR=<gnutls_dir.txt
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
set INCLUDE=%INCLUDE%;%LIBGNUTLS_DIR%\include
|
|
set LIB=%LIB%;%LIBGNUTLS_DIR%\lib\x86
|
|
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
shell: cmd
|
|
|
|
build-windows-with-video-libvpx-unit-test-1:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: get openssl
|
|
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
|
shell: powershell
|
|
- name: expand openssl
|
|
run: |
|
|
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd
|
|
cd openssl_build\openssl-1.1\x86
|
|
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check openssl folder
|
|
run: |
|
|
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
dir "%OPENSSL_DIR%\include"
|
|
dir "%OPENSSL_DIR%\lib"
|
|
shell: cmd
|
|
- name: get libvpx
|
|
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/libvpx/releases/download/v1.8.2/libvpx_v1.8.2_msvc14.zip" -Outfile "libvpx.zip"
|
|
shell: powershell
|
|
- name: expand libvpx
|
|
run: |
|
|
Expand-Archive -LiteralPath .\libvpx.zip -DestinationPath .\libvpx_build\; pwd
|
|
cd libvpx_build
|
|
Add-Content ..\libvpx_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check libvpx folder
|
|
run: |
|
|
set /P LIBVPX_DIR=<libvpx_dir.txt
|
|
dir "%LIBVPX_DIR%\include"
|
|
dir "%LIBVPX_DIR%\lib\x86"
|
|
shell: cmd
|
|
- name: get libsdl
|
|
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip"
|
|
shell: powershell
|
|
- name: expand libsdl
|
|
run: |
|
|
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd
|
|
cd libsdl_build
|
|
Add-Content ..\libsdl_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check libsdl folder
|
|
run: |
|
|
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
dir "%LIBSDL_DIR%\include\SDL"
|
|
dir "%LIBSDL_DIR%\lib\x86"
|
|
shell: cmd
|
|
- name: config site
|
|
run: |
|
|
cd pjlib/include/pj; cp config_site_test.h config_site.h
|
|
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
|
|
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1"
|
|
Add-Content config_site.h "#define PJMEDIA_HAS_LIBYUV 1"
|
|
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
|
|
Add-Content config_site.h "#define PJMEDIA_HAS_VPX_CODEC 1"
|
|
shell: powershell
|
|
- name: check VsDevCmd.bat
|
|
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
shell: cmd
|
|
- name: MSBuild
|
|
working-directory: .
|
|
run: |
|
|
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
set /P LIBVPX_DIR=<libvpx_dir.txt
|
|
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%LIBVPX_DIR%\include;%LIBSDL_DIR%\include\SDL
|
|
set LIB=%LIB%;%OPENSSL_DIR%\lib;%LIBVPX_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86
|
|
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
shell: cmd
|
|
- name: unit tests
|
|
run: |
|
|
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
|
$env:LIBVPX_DIR = Get-Content .\libvpx_dir.txt
|
|
$env:LIBSDL_DIR = Get-Content .\libsdl_dir.txt
|
|
$env:PATH+=";$env:OPENSSL_DIR\bin;$env:LIBVPX_DIR\bin\x86;$env:LIBSDL_DIR\bin\x86;"
|
|
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe
|
|
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe
|
|
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
|
|
shell: powershell
|
|
|
|
build-windows-video-ffmpeg:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: get ffmpeg
|
|
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/FFmpeg/releases/download/4.3.r96746/libffmpeg_4.3.r96746_msvc14_x86.zip" -Outfile "libffmpeg.zip"
|
|
shell: powershell
|
|
- name: expand ffmpeg
|
|
run: |
|
|
Expand-Archive -LiteralPath .\libffmpeg.zip -DestinationPath .\libffmpeg_build\; pwd
|
|
cd libffmpeg_build
|
|
Add-Content ..\libffmpeg_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check ffmpeg folder
|
|
run: |
|
|
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt
|
|
dir "%LIBFFMPEG_DIR%\include"
|
|
dir "%LIBFFMPEG_DIR%\lib\x86"
|
|
shell: cmd
|
|
- name: get libx264
|
|
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/x264/releases/download/0.159.r2991/libx264_0.159.r2991_msvc14.zip" -Outfile ".\libx264.zip"
|
|
shell: powershell
|
|
- name: expand libx264
|
|
run: |
|
|
Expand-Archive -LiteralPath .\libx264.zip -DestinationPath .\libx264_build\; pwd
|
|
cd libx264_build
|
|
Add-Content ..\libx264_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check libx264 folder
|
|
run: |
|
|
set /P LIBX264_DIR=<libx264_dir.txt
|
|
dir "%LIBX264_DIR%\include"
|
|
dir "%LIBX264_DIR%\lib\x86"
|
|
shell: cmd
|
|
- name: get libsdl
|
|
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip"
|
|
shell: powershell
|
|
- name: expand libsdl
|
|
run: |
|
|
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd
|
|
cd libsdl_build
|
|
Add-Content ..\libsdl_dir.txt $pwd.Path
|
|
shell: powershell
|
|
- name: check libsdl folder
|
|
run: |
|
|
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
dir "%LIBSDL_DIR%\include\SDL"
|
|
dir "%LIBSDL_DIR%\lib\x86"
|
|
shell: cmd
|
|
- name: config site
|
|
run: |
|
|
echo "" > pjlib\include\pj\config_site.h
|
|
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
|
|
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG 1"
|
|
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG_VID_CODEC 1"
|
|
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 1"
|
|
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
|
|
shell: powershell
|
|
- name: check VsDevCmd.bat
|
|
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
shell: cmd
|
|
- name: MSBuild
|
|
working-directory: .
|
|
run: |
|
|
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt
|
|
set /P LIBX264_DIR=<libx264_dir.txt
|
|
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
set INCLUDE=%INCLUDE%;%LIBFFMPEG_DIR%\include;%LIBX264_DIR%\include;%LIBSDL_DIR%\include\SDL
|
|
set LIB=%LIB%;%LIBFFMPEG_DIR%\lib\x86;%LIBX264_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86
|
|
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
shell: cmd
|