Skip to content

Asynchronous SIP client authentication #3256

Asynchronous SIP client authentication

Asynchronous SIP client authentication #3256

Workflow file for this run

name: CI Windows
on:
push:
branches:
- 'master'
pull_request:
types: [opened, synchronize, reopened]
env:
CI_WIN_ARGS: -w 3 --shuffle
CI_MODE: --ci-mode
# Setting CI_RUNNER to empty should disable cirunner
CI_RUNNER: python ${{ github.workspace }}/cirunner/cirunner.py -t 3600 -o ${{ github.workspace }}/artifacts --
jobs:
default:
runs-on: windows-latest
name: Default / build only
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get swig
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/swigwin-4.1.1.zip" -OutFile ".\swigwin.zip"
shell: powershell
- name: expand swig
run: |
Expand-Archive -LiteralPath .\swigwin.zip -DestinationPath .\swigwin\; pwd
cd swigwin\swigwin-4.1.1
Add-Content ..\..\swig_path.txt $pwd.Path
shell: powershell
- name: config site
run: |
echo #define PJ_TODO(x) > pjlib\include\pj\config_site.h
shell: cmd
- name: MSBuild
run: |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /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%\Microsoft Visual Studio\2022\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=v143 /p:Configuration=Debug-Dynamic /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
openssl-1:
runs-on: windows-latest
name: OpenSSL / pjlib,util,pjmedia
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get openssl
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/openssl-1.1.1s-win.zip" -OutFile ".\openssl.zip"
shell: powershell
- name: expand openssl
run: |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .;
cd openssl_build
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%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: pjlib-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjlib/bin
Invoke-Expression "$env:CI_RUNNER ./pjlib-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS $env:CI_MODE"
shell: powershell
- name: pjlib-util-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjlib-util/bin
Invoke-Expression "$env:CI_RUNNER ./pjlib-util-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: pjmedia-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjmedia/bin
Invoke-Expression "$env:CI_RUNNER ./pjmedia-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
openssl-2:
runs-on: windows-latest
name: OpenSSL / pjsip,pjsua
env:
PYTHONUTF8: 1 # This forces Python to use UTF-8
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get openssl
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/openssl-1.1.1s-win.zip" -OutFile ".\openssl.zip"
shell: powershell
- name: expand openssl
run: |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .; pwd
cd openssl_build
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: install SIPp
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/sipp-3.2-win.zip" -OutFile ".\sipp.zip"
Expand-Archive -LiteralPath .\sipp.zip -DestinationPath .
cd sipp
Add-Content ..\sipp_dir.txt $pwd.Path
cd ..
shell: powershell
- 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%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: build test tools cmp_wav
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
cd tests/pjsua/tools
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: get test tool visqol
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/visqol_win.zip" -OutFile ".\visqol_win.zip"
Expand-Archive -LiteralPath .\visqol_win.zip -DestinationPath tests\pjsua\tools
shell: powershell
- name: set up Python 3.10 for pjsua test
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install PESQ and Dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install numpy cython
python -m pip install pesq scipy
shell: cmd
- name: pjsip-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjsip/bin
Invoke-Expression "$env:CI_RUNNER ./pjsip-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: python pjsua tests
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:SIPP_DIR = Get-Content .\sipp_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
$env:PATH+=";$env:SIPP_DIR"
cd tests/pjsua
echo python runall.py
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
openssl-3:
runs-on: windows-latest
name: OpenSSL / pjnath
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get openssl
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/openssl-1.1.1s-win.zip" -OutFile ".\openssl.zip"
shell: powershell
- name: expand openssl
run: |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .;
cd openssl_build
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%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: pjnath-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjnath/bin
Invoke-Expression "$env:CI_RUNNER ./pjnath-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
gnu-tls:
runs-on: windows-latest
name: GnuTLS / build only
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get gnutls
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/gnutls-3.5.17-win.zip" -Outfile ".\gnutls.zip"
shell: powershell
- name: expand gnutls
run: |
Expand-Archive -LiteralPath .\gnutls.zip -DestinationPath .; pwd
cd gnutls_build
Add-Content ..\gnutls_dir.txt $pwd.Path
shell: powershell
- name: check gnutls folder
run: |
set /P GNUTLS_DIR=<gnutls_dir.txt
dir "%GNUTLS_DIR%\include"
dir "%GNUTLS_DIR%\lib\"
shell: cmd
- name: config site
run: |
echo '#define PJ_TODO(x)' > pjlib/include/pj/config_site.h
Add-Content pjlib/include/pj/config_site.h "#define PJ_HAS_SSL_SOCK 1"
Add-Content pjlib/include/pj/config_site.h "#define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_GNUTLS"
shell: powershell
- name: check VsDevCmd.bat
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P GNUTLS_DIR=<gnutls_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%GNUTLS_DIR%\include
set LIB=%LIB%;%GNUTLS_DIR%\lib
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
vid-libvpx-schannel-1:
runs-on: windows-latest
name: VPX+SChannel / pjlib,util,pjmedia,pjnath
env:
PYTHONUTF8: 1 # This forces Python to use UTF-8
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get vpx
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/vpx-1.12-win.zip" -Outfile "vpx.zip"
shell: powershell
- name: expand libvpx
run: |
Expand-Archive -LiteralPath .\vpx.zip -DestinationPath .; pwd
cd vpx_build
Add-Content ..\vpx_dir.txt $pwd.Path
shell: powershell
- name: check vpx folder
run: |
set /P VPX_DIR=<vpx_dir.txt
dir "%VPX_DIR%\include"
dir "%VPX_DIR%\lib"
shell: cmd
- name: get sdl
run: Invoke-WebRequest -Uri "https://github.com/libsdl-org/SDL/releases/download/release-2.26.2/SDL2-devel-2.26.2-VC.zip" -Outfile ".\sdl.zip"
shell: powershell
- name: expand sdl
run: |
Expand-Archive -LiteralPath .\sdl.zip -DestinationPath .\sdl_build\; pwd
cd sdl_build\SDL2-2.26.2
Add-Content ..\..\sdl_dir.txt $pwd.Path
shell: powershell
- name: check sdl folder
run: |
set /P SDL_DIR=<sdl_dir.txt
dir "%SDL_DIR%\include"
dir "%SDL_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 PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_SCHANNEL"
Add-Content config_site.h "#undef PJMEDIA_SRTP_HAS_DTLS"
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%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
set /P VPX_DIR=<vpx_dir.txt
set /P SDL_DIR=<sdl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%VPX_DIR%\include;%SDL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: build test tools cmp_wav
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
set /P VPX_DIR=<vpx_dir.txt
set /P SDL_DIR=<sdl_dir.txt
cd tests/pjsua/tools
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%VPX_DIR%\include;%SDL_DIR%\include
set LIB=%LIB%;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: get test tool visqol
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/visqol_win.zip" -OutFile ".\visqol_win.zip"
Expand-Archive -LiteralPath .\visqol_win.zip -DestinationPath tests\pjsua\tools
shell: powershell
- name: pjlib-test
run: |
$env:SDL_DIR = Get-Content .\sdl_dir.txt
$env:PATH+=";$env:SDL_DIR\lib\x86;"
cd pjlib/bin
Invoke-Expression "$env:CI_RUNNER ./pjlib-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS $env:CI_MODE"
shell: powershell
- name: pjlib-util-test
run: |
$env:SDL_DIR = Get-Content .\sdl_dir.txt
$env:PATH+=";$env:SDL_DIR\lib\x86;"
cd pjlib-util/bin
Invoke-Expression "$env:CI_RUNNER ./pjlib-util-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: pjmedia-test
run: |
$env:SDL_DIR = Get-Content .\sdl_dir.txt
$env:PATH+=";$env:SDL_DIR\lib\x86;"
cd pjmedia/bin
Invoke-Expression "$env:CI_RUNNER ./pjmedia-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: pjnath-test
run: |
$env:SDL_DIR = Get-Content .\sdl_dir.txt
$env:PATH+=";$env:SDL_DIR\lib\x86;"
cd pjnath/bin
Invoke-Expression "$env:CI_RUNNER ./pjnath-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS $env:CI_MODE"
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
vid-libvpx-schannel-2:
runs-on: windows-latest
name: VPX+SChannel / pjsua
env:
PYTHONUTF8: 1 # This forces Python to use UTF-8
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get vpx
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/vpx-1.12-win.zip" -Outfile "vpx.zip"
shell: powershell
- name: expand libvpx
run: |
Expand-Archive -LiteralPath .\vpx.zip -DestinationPath .; pwd
cd vpx_build
Add-Content ..\vpx_dir.txt $pwd.Path
shell: powershell
- name: check vpx folder
run: |
set /P VPX_DIR=<vpx_dir.txt
dir "%VPX_DIR%\include"
dir "%VPX_DIR%\lib"
shell: cmd
- name: get sdl
run: Invoke-WebRequest -Uri "https://github.com/libsdl-org/SDL/releases/download/release-2.26.2/SDL2-devel-2.26.2-VC.zip" -Outfile ".\sdl.zip"
shell: powershell
- name: expand sdl
run: |
Expand-Archive -LiteralPath .\sdl.zip -DestinationPath .\sdl_build\; pwd
cd sdl_build\SDL2-2.26.2
Add-Content ..\..\sdl_dir.txt $pwd.Path
shell: powershell
- name: check sdl folder
run: |
set /P SDL_DIR=<sdl_dir.txt
dir "%SDL_DIR%\include"
dir "%SDL_DIR%\lib\x86"
shell: cmd
- name: install SIPp
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/sipp-3.2-win.zip" -OutFile ".\sipp.zip"
Expand-Archive -LiteralPath .\sipp.zip -DestinationPath .
cd sipp
Add-Content ..\sipp_dir.txt $pwd.Path
cd ..
shell: powershell
- 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 PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_SCHANNEL"
Add-Content config_site.h "#undef PJMEDIA_SRTP_HAS_DTLS"
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%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
set /P VPX_DIR=<vpx_dir.txt
set /P SDL_DIR=<sdl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%VPX_DIR%\include;%SDL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: build test tools cmp_wav
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
set /P VPX_DIR=<vpx_dir.txt
set /P SDL_DIR=<sdl_dir.txt
cd tests/pjsua/tools
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%VPX_DIR%\include;%SDL_DIR%\include
set LIB=%LIB%;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: get test tool visqol
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/visqol_win.zip" -OutFile ".\visqol_win.zip"
Expand-Archive -LiteralPath .\visqol_win.zip -DestinationPath tests\pjsua\tools
shell: powershell
- name: set up Python 3.10 for pjsua test
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install PESQ and Dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install numpy cython
python -m pip install pesq scipy
shell: cmd
- name: python pjsua tests
run: |
$env:SDL_DIR = Get-Content .\sdl_dir.txt
$env:SIPP_DIR = Get-Content .\sipp_dir.txt
$env:PATH+=";$env:SDL_DIR\lib\x86;"
$env:PATH+=";$env:SIPP_DIR"
cd tests/pjsua
echo python runall.py
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
vid-libvpx-schannel-3:
runs-on: windows-latest
name: VPX+SChannel / pjsip
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- name: get vpx
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/vpx-1.12-win.zip" -Outfile "vpx.zip"
shell: powershell
- name: expand libvpx
run: |
Expand-Archive -LiteralPath .\vpx.zip -DestinationPath .; pwd
cd vpx_build
Add-Content ..\vpx_dir.txt $pwd.Path
shell: powershell
- name: check vpx folder
run: |
set /P VPX_DIR=<vpx_dir.txt
dir "%VPX_DIR%\include"
dir "%VPX_DIR%\lib"
shell: cmd
- name: get sdl
run: Invoke-WebRequest -Uri "https://github.com/libsdl-org/SDL/releases/download/release-2.26.2/SDL2-devel-2.26.2-VC.zip" -Outfile ".\sdl.zip"
shell: powershell
- name: expand sdl
run: |
Expand-Archive -LiteralPath .\sdl.zip -DestinationPath .\sdl_build\; pwd
cd sdl_build\SDL2-2.26.2
Add-Content ..\..\sdl_dir.txt $pwd.Path
shell: powershell
- name: check sdl folder
run: |
set /P SDL_DIR=<sdl_dir.txt
dir "%SDL_DIR%\include"
dir "%SDL_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 PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_SCHANNEL"
Add-Content config_site.h "#undef PJMEDIA_SRTP_HAS_DTLS"
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%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
set /P VPX_DIR=<vpx_dir.txt
set /P SDL_DIR=<sdl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%VPX_DIR%\include;%SDL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: pjsip-test
run: |
$env:SDL_DIR = Get-Content .\sdl_dir.txt
$env:PATH+=";$env:SDL_DIR\lib\x86;"
cd pjsip/bin
Invoke-Expression "$env:CI_RUNNER ./pjsip-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS"
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
# Temporarily disabled due to ffmpeg library build issues
# build-win-vid-ffmpeg:
# runs-on: windows-latest
# name: FFMPEG / build only
# steps:
# - uses: actions/checkout@master
# - name: Install Windows Debugging Tools
# run: |
# choco install windows-sdk-10-version-2004-windbg --yes --no-progress
# shell: powershell
# - name: install cirunner
# run: |
# git clone --depth 1 https://github.com/pjsip/cirunner.git
# cirunner/installwindows.ps1
# - name: get ffmpeg
# run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/ffmpeg-5.1.2-win.zip" -Outfile "ffmpeg.zip"
# shell: powershell
# - name: expand ffmpeg
# run: |
# Expand-Archive -LiteralPath .\ffmpeg.zip -DestinationPath .; pwd
# cd ffmpeg_build
# Add-Content ..\ffmpeg_dir.txt $pwd.Path
# shell: powershell
# - name: check ffmpeg folder
# run: |
# set /P FFMPEG_DIR=<ffmpeg_dir.txt
# dir "%FFMPEG_DIR%\include"
# dir "%FFMPEG_DIR%\lib"
# shell: cmd
# - name: get sdl
# run: Invoke-WebRequest -Uri "https://github.com/libsdl-org/SDL/releases/download/release-2.26.2/SDL2-devel-2.26.2-VC.zip" -Outfile ".\sdl.zip"
# shell: powershell
# - name: expand sdl
# run: |
# Expand-Archive -LiteralPath .\sdl.zip -DestinationPath .\sdl_build\; pwd
# cd sdl_build\SDL2-2.26.2
# Add-Content ..\..\sdl_dir.txt $pwd.Path
# shell: powershell
# - name: check sdl folder
# run: |
# set /P SDL_DIR=<sdl_dir.txt
# dir "%SDL_DIR%\include\SDL"
# dir "%SDL_DIR%\lib\x86"
# shell: cmd
# - name: config site
# run: |
# echo '#define PJ_TODO(x)' > pjlib/include/pj/config_site.h
# Add-Content pjlib/include/pj/config_site.h "#define PJMEDIA_HAS_VIDEO 1"
# Add-Content pjlib/include/pj/config_site.h "#define PJMEDIA_HAS_FFMPEG 1"
# Add-Content pjlib/include/pj/config_site.h "#define PJMEDIA_HAS_FFMPEG_VID_CODEC 1"
# Add-Content pjlib/include/pj/config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 1"
# Add-Content pjlib/include/pj/config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
# shell: powershell
# - name: check VsDevCmd.bat
# run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
# shell: cmd
# - name: MSBuild
# working-directory: .
# run: |
# set /P FFMPEG_DIR=<ffmpeg_dir.txt
# set /P SDL_DIR=<sdl_dir.txt
# call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
# set INCLUDE=%INCLUDE%;%FFMPEG_DIR%\include;%SDL_DIR%\include
# set LIB=%LIB%;%FFMPEG_DIR%\lib;%SDL_DIR%\lib\x86
# msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
# shell: cmd
# - name: upload artifacts on failure
# if: ${{ failure() }}
# uses: actions/upload-artifact@v4
# with:
# name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
# path: artifacts
iocp:
runs-on: windows-latest
name: IOCP / pjlib
steps:
- uses: actions/checkout@master
- name: config site
run:
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_IOQUEUE_IMP PJ_IOQUEUE_IMP_IOCP"
shell: powershell
- name: check VsDevCmd.bat
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: verify ioqueue type is iocp
run: |
cd pjlib/bin
pjlib-test-i386-Win32-vc14-Release.exe -c -L | findstr /C:"ioqueue type" | findstr iocp
shell: cmd
- name: pjlib-test
run: |
cd pjlib/bin
$args = $env:CI_WIN_ARGS -split ' '
./pjlib-test-i386-Win32-vc14-Release.exe $args $env:CI_MODE
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts
iocp-cb-no-lock:
runs-on: windows-latest
name: iocp-cb-no-lock / pjlib,pjsua
env:
PYTHONUTF8: 1 # This forces Python to use UTF-8
steps:
- uses: actions/checkout@master
- name: Install Windows Debugging Tools
run: |
choco install windows-sdk-10-version-2004-windbg --yes --no-progress
shell: powershell
- name: install cirunner
run: |
git clone --depth 1 https://github.com/pjsip/cirunner.git
cirunner/installwindows.ps1
- 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 PJ_IOQUEUE_CALLBACK_NO_LOCK 1"
Add-Content config_site.h "#define PJ_IOQUEUE_IMP PJ_IOQUEUE_IMP_IOCP"
shell: powershell
- name: get openssl
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/openssl-1.1.1s-win.zip" -OutFile ".\openssl.zip"
shell: powershell
- name: expand openssl
run: |
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .; pwd
cd openssl_build
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: install SIPp
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/sipp-3.2-win.zip" -OutFile ".\sipp.zip"
Expand-Archive -LiteralPath .\sipp.zip -DestinationPath .
cd sipp
Add-Content ..\sipp_dir.txt $pwd.Path
cd ..
shell: powershell
- name: check VsDevCmd.bat
run: dir "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
shell: cmd
- name: MSBuild
working-directory: .
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: pjlib-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjlib/bin
Invoke-Expression "$env:CI_RUNNER ./pjlib-test-i386-Win32-vc14-Release.exe $env:CI_MODE $env:CI_WIN_ARGS udp_ioqueue_test tcp_ioqueue_test ioqueue_stress_test udp_ioqueue_unreg_test ioqueue_perf_test0 ioqueue_perf_test1 activesock_test ssl_sock_test iocp_unregister_test"
shell: powershell
- name: pjsip-test
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
cd pjsip/bin
Invoke-Expression "$env:CI_RUNNER ./pjsip-test-i386-Win32-vc14-Release.exe $env:CI_WIN_ARGS resolve_test inv_offer_answer_test transport_udp_test transport_tcp_test regc_test tsx_destroy_test"
shell: powershell
- name: build test tools cmp_wav
run: |
set /P OPENSSL_DIR=<openssl_dir.txt
cd tests/pjsua/tools
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
set LIB=%LIB%;%OPENSSL_DIR%\lib
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
shell: cmd
- name: get test tool visqol
run: |
Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/visqol_win.zip" -OutFile ".\visqol_win.zip"
Expand-Archive -LiteralPath .\visqol_win.zip -DestinationPath tests\pjsua\tools
shell: powershell
- name: set up Python 3.10 for pjsua test
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install PESQ and Dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install numpy cython
python -m pip install pesq scipy
shell: cmd
- name: python pjsua tests
run: |
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
$env:SIPP_DIR = Get-Content .\sipp_dir.txt
$env:PATH+=";$env:OPENSSL_DIR\bin"
$env:PATH+=";$env:SIPP_DIR"
cd tests/pjsua
echo python runall.py
shell: powershell
- name: upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-${{ github.job }}-${{ github.run_id }}
path: artifacts