Bump the version from 3.4.1 to 3.4.2 #821
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Producer CPP SDK CI | |
on: | |
push: | |
branches: | |
- develop | |
- master | |
pull_request: | |
branches: | |
- develop | |
- master | |
jobs: | |
mac-os-build-clang: | |
runs-on: macos-13 | |
env: | |
AWS_KVS_LOG_LEVEL: 2 | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
brew install pkg-config openssl cmake gstreamer log4cplus | |
brew unlink openssl | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
sh -c 'cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE;cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE -DCMAKE_INSTALL_PREFIX=.' | |
make | |
make install | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
cd build | |
./tst/producerTest | |
mac-os-build-gcc: | |
runs-on: macos-13 | |
permissions: | |
id-token: write | |
contents: read | |
env: | |
CC: gcc | |
CXX: g++ | |
AWS_KVS_LOG_LEVEL: 2 | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
brew install pkg-config openssl cmake gstreamer log4cplus | |
brew unlink openssl | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
cd build | |
./tst/producerTest | |
linux-gcc-code-coverage: | |
runs-on: ubuntu-20.04 | |
env: | |
AWS_KVS_LOG_LEVEL: 2 | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DCODE_COVERAGE=TRUE -DBUILD_TEST=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
cd build | |
ulimit -c unlimited -S | |
timeout --signal=SIGABRT 60m ./tst/producerTest | |
- name: Code coverage | |
run: | | |
cd build | |
for test_file in $(find CMakeFiles/KinesisVideoProducer.dir gstkvssink.dir KinesisVideoProducerJNI.dir -name '*.gcno'); do gcov $test_file; done | |
bash <(curl -s https://codecov.io/bash) | |
address-sanitizer: | |
runs-on: ubuntu-20.04 | |
permissions: | |
id-token: write | |
contents: read | |
env: | |
CC: clang | |
CXX: clang++ | |
AWS_KVS_LOG_LEVEL: 2 | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DADDRESS_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
cd build | |
ulimit -c unlimited -S | |
timeout --signal=SIGABRT 60m ./tst/producerTest | |
undefined-behavior-sanitizer: | |
runs-on: ubuntu-20.04 | |
permissions: | |
id-token: write | |
contents: read | |
env: | |
CC: clang | |
CXX: clang++ | |
AWS_KVS_LOG_LEVEL: 2 | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DUNDEFINED_BEHAVIOR_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
cd build | |
ulimit -c unlimited -S | |
timeout --signal=SIGABRT 60m ./tst/producerTest | |
# memory-sanitizer: | |
# runs-on: ubuntu-20.04 | |
# permissions: | |
# id-token: write | |
# contents: read | |
# env: | |
# CC: clang | |
# CXX: clang++ | |
# AWS_KVS_LOG_LEVEL: 2 | |
# steps: | |
# - name: Clone repository | |
# uses: actions/checkout@v3 | |
# - name: Configure AWS Credentials | |
# uses: aws-actions/configure-aws-credentials@v1-node16 | |
# with: | |
# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
# role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
# aws-region: ${{ secrets.AWS_REGION }} | |
# - name: Build repository | |
# run: | | |
# mkdir build && cd build | |
# cmake .. -DBUILD_TEST=TRUE -DMEMORY_SANITIZER=TRUE -DBUILD_COMMON_LWS=TRUE | |
# make | |
# ulimit -c unlimited -S | |
# timeout --signal=SIGABRT 150m ./tst/producerTest --gtest_break_on_failure | |
# thread-sanitizer: | |
# runs-on: ubuntu-20.04 | |
# permissions: | |
# id-token: write | |
# contents: read | |
# env: | |
# CC: clang | |
# CXX: clang++ | |
# AWS_KVS_LOG_LEVEL: 2 | |
# steps: | |
# - name: Clone repository | |
# uses: actions/checkout@v3 | |
# - name: Configure AWS Credentials | |
# uses: aws-actions/configure-aws-credentials@v1-node16 | |
# with: | |
# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
# role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
# aws-region: ${{ secrets.AWS_REGION }} | |
# - name: Build repository | |
# run: | | |
# sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
# mkdir build && cd build | |
# cmake .. -DBUILD_TEST=TRUE -DTHREAD_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE | |
# make | |
# ulimit -c unlimited -S | |
# timeout --signal=SIGABRT 20m ./tst/producerTest | |
ubuntu-gcc: | |
runs-on: ubuntu-20.04 | |
env: | |
AWS_KVS_LOG_LEVEL: 2 | |
CC: gcc | |
CXX: g++ | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
cd build | |
ulimit -c unlimited -S | |
timeout --signal=SIGABRT 60m ./tst/producerTest | |
windows-msvc: | |
runs-on: windows-2022 | |
env: | |
AWS_KVS_LOG_LEVEL: 7 | |
permissions: | |
id-token: write | |
contents: read | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Move repository | |
run: | | |
mkdir C:\producer | |
Move-Item -Path "D:\a\amazon-kinesis-video-streams-producer-sdk-cpp\amazon-kinesis-video-streams-producer-sdk-cpp\*" -Destination "D:\producer" | |
- name: Install dependencies | |
run: | | |
choco install nasm strawberryperl | |
choco install gstreamer --version=1.22.8 | |
choco install gstreamer-devel --version=1.22.8 | |
- name: Build repository | |
run: | | |
$env:Path += ';C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Strawberry\c\bin;C:\Program Files\NASM;D:\producer\open-source\local\lib;D:\producer\open-source\local\bin' | |
git config --system core.longpaths true | |
cd D:\producer | |
dir | |
.\build_windows.bat | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
role-duration-seconds: 10800 | |
- name: Run tests | |
run: | | |
$env:Path += ';C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Strawberry\c\bin;C:\Program Files\NASM;D:\producer\open-source\local\lib;D:\producer\open-source\local\bin' | |
& "D:\producer\build\tst\producerTest.exe" | |
arm64-cross-compilation: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: aarch64-linux-gnu-gcc | |
CXX: aarch64-linux-gnu-g++ | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu | |
sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Build Repository | |
run: | | |
sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic64 -DBUILD_LOG4CPLUS_HOST=arm-linux -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
file libKinesisVideoProducer.so | |
linux-aarch64-cross-compilation: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: aarch64-linux-gnu-gcc | |
CXX: aarch64-linux-gnu-g++ | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu | |
sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Build Repository | |
run: | | |
sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-aarch64 -DBUILD_LOG4CPLUS_HOST=arm-linux -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
file libKinesisVideoProducer.so | |
arm32-cross-compilation: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: arm-linux-gnueabi-gcc | |
CXX: arm-linux-gnueabi-g++ | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get -y install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi binutils-arm-linux-gnueabi | |
sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Build Repository | |
run: | | |
sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' | |
mkdir build && cd build | |
cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic32 -DBUILD_LOG4CPLUS_HOST=arm-linux -DCMAKE_INSTALL_PREFIX=. | |
make | |
make install | |
file libKinesisVideoProducer.so | |
linux-build-gcc-static: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_STATIC=ON | |
make | |
linux-build-gcc-shared: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt clean && sudo apt update | |
sudo apt install -y libunwind-dev | |
sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools | |
- name: Build repository | |
run: | | |
mkdir build && cd build | |
cmake .. -DBUILD_DEPENDENCIES=OFF -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_STATIC=OFF -DBUILD_SHARED_LIBS=ON | |
make |