Skip to content

Commit 9522feb

Browse files
committed
Add mac and linux as well
1 parent a96a744 commit 9522feb

File tree

2 files changed

+133
-126
lines changed

2 files changed

+133
-126
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -116,130 +116,6 @@ jobs:
116116
for test_file in $(find CMakeFiles/KinesisVideoProducer.dir gstkvssink.dir KinesisVideoProducerJNI.dir -name '*.gcno'); do gcov $test_file; done
117117
bash <(curl -s https://codecov.io/bash)
118118
119-
address-sanitizer:
120-
runs-on: ubuntu-20.04
121-
permissions:
122-
id-token: write
123-
contents: read
124-
env:
125-
CC: clang
126-
CXX: clang++
127-
AWS_KVS_LOG_LEVEL: 2
128-
steps:
129-
- name: Clone repository
130-
uses: actions/checkout@v3
131-
- name: Install dependencies
132-
run: |
133-
sudo apt clean && sudo apt update
134-
sudo apt install -y libunwind-dev
135-
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
136-
- name: Build repository
137-
run: |
138-
mkdir build && cd build
139-
cmake .. -DBUILD_TEST=TRUE -DADDRESS_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=.
140-
make
141-
make install
142-
- name: Configure AWS Credentials
143-
uses: aws-actions/configure-aws-credentials@v1-node16
144-
with:
145-
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
146-
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }}
147-
aws-region: ${{ secrets.AWS_REGION }}
148-
role-duration-seconds: 10800
149-
- name: Run tests
150-
run: |
151-
cd build
152-
ulimit -c unlimited -S
153-
timeout --signal=SIGABRT 60m ./tst/producerTest
154-
155-
undefined-behavior-sanitizer:
156-
runs-on: ubuntu-20.04
157-
permissions:
158-
id-token: write
159-
contents: read
160-
env:
161-
CC: clang
162-
CXX: clang++
163-
AWS_KVS_LOG_LEVEL: 2
164-
steps:
165-
- name: Clone repository
166-
uses: actions/checkout@v3
167-
- name: Install dependencies
168-
run: |
169-
sudo apt clean && sudo apt update
170-
sudo apt install -y libunwind-dev
171-
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
172-
- name: Build repository
173-
run: |
174-
mkdir build && cd build
175-
cmake .. -DBUILD_TEST=TRUE -DUNDEFINED_BEHAVIOR_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=.
176-
make
177-
make install
178-
- name: Configure AWS Credentials
179-
uses: aws-actions/configure-aws-credentials@v1-node16
180-
with:
181-
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
182-
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }}
183-
aws-region: ${{ secrets.AWS_REGION }}
184-
role-duration-seconds: 10800
185-
- name: Run tests
186-
run: |
187-
cd build
188-
ulimit -c unlimited -S
189-
timeout --signal=SIGABRT 60m ./tst/producerTest
190-
191-
# memory-sanitizer:
192-
# runs-on: ubuntu-20.04
193-
# permissions:
194-
# id-token: write
195-
# contents: read
196-
# env:
197-
# CC: clang
198-
# CXX: clang++
199-
# AWS_KVS_LOG_LEVEL: 2
200-
# steps:
201-
# - name: Clone repository
202-
# uses: actions/checkout@v3
203-
# - name: Configure AWS Credentials
204-
# uses: aws-actions/configure-aws-credentials@v1-node16
205-
# with:
206-
# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
207-
# role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }}
208-
# aws-region: ${{ secrets.AWS_REGION }}
209-
# - name: Build repository
210-
# run: |
211-
# mkdir build && cd build
212-
# cmake .. -DBUILD_TEST=TRUE -DMEMORY_SANITIZER=TRUE -DBUILD_COMMON_LWS=TRUE
213-
# make
214-
# ulimit -c unlimited -S
215-
# timeout --signal=SIGABRT 150m ./tst/producerTest --gtest_break_on_failure
216-
# thread-sanitizer:
217-
# runs-on: ubuntu-20.04
218-
# permissions:
219-
# id-token: write
220-
# contents: read
221-
# env:
222-
# CC: clang
223-
# CXX: clang++
224-
# AWS_KVS_LOG_LEVEL: 2
225-
# steps:
226-
# - name: Clone repository
227-
# uses: actions/checkout@v3
228-
# - name: Configure AWS Credentials
229-
# uses: aws-actions/configure-aws-credentials@v1-node16
230-
# with:
231-
# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
232-
# role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }}
233-
# aws-region: ${{ secrets.AWS_REGION }}
234-
# - name: Build repository
235-
# run: |
236-
# 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
237-
# mkdir build && cd build
238-
# cmake .. -DBUILD_TEST=TRUE -DTHREAD_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE
239-
# make
240-
# ulimit -c unlimited -S
241-
# timeout --signal=SIGABRT 20m ./tst/producerTest
242-
243119
ubuntu-gcc:
244120
runs-on: ubuntu-20.04
245121
env:

.github/workflows/kvssink.yml

Lines changed: 133 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,137 @@ jobs:
8282
# exit 1
8383
# fi
8484

85+
mac-debug-dump-dir:
86+
runs-on: macos-latest
87+
env:
88+
AWS_KVS_LOG_LEVEL: 1
89+
permissions:
90+
id-token: write
91+
contents: read
92+
steps:
93+
- name: Clone repository
94+
uses: actions/checkout@v4
95+
- name: Install dependencies
96+
run: |
97+
brew install gstreamer log4cplus mkvtoolnix
98+
99+
- name: Build kvssink
100+
run: |
101+
mkdir build && cd build
102+
cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_DEPENDENCIES=OFF
103+
make -j$(nproc)
104+
105+
- name: Configure AWS Credentials
106+
uses: aws-actions/configure-aws-credentials@v4
107+
with:
108+
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
109+
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }}
110+
aws-region: ${{ secrets.AWS_REGION }}
111+
role-duration-seconds: 10800
112+
113+
- name: Run kvssink with dump dir
114+
env:
115+
GST_PLUGIN_PATH: ${{ github.workspace }}/build
116+
KVS_DEBUG_DUMP_DATA_FILE_DIR: ${{ github.workspace }}/build/debug_output
117+
working-directory: ./build
118+
run: |
119+
mkdir -p debug_output
120+
gst-launch-1.0 videotestsrc is-live=true num-buffers=450 \
121+
! video/x-raw,framerate=30/1,width=640,height=480 \
122+
! videoconvert ! x264enc tune=zerolatency key-int-max=45 \
123+
! h264parse \
124+
! kvssink stream-name="demo-stream"
125+
126+
- name: Verify MKV dump
127+
working-directory: ./build/debug_output
128+
run: |
129+
mkvfiles=(*.mkv)
130+
if [ ${#mkvfiles[@]} -eq 0 ]; then
131+
echo "No MKV files found in debug_output"
132+
exit 1
133+
fi
134+
135+
for file in "${mkvfiles[@]}"; do
136+
echo "Verifying $file with mkvinfo (verbose and hexdump):"
137+
mkvinfo -v -X "$file"
138+
done
139+
140+
linux-debug-dump-dir:
141+
runs-on: ubuntu-latest
142+
env:
143+
AWS_KVS_LOG_LEVEL: 1
144+
permissions:
145+
id-token: write
146+
contents: read
147+
strategy:
148+
matrix:
149+
include:
150+
- os: Ubuntu 22.04
151+
image: public.ecr.aws/ubuntu/ubuntu:22.04_stable
152+
- os: Ubuntu 20.04
153+
image: public.ecr.aws/ubuntu/ubuntu:20.04_stable
154+
fail-fast: false
155+
steps:
156+
- name: Checkout repository
157+
uses: actions/checkout@v4
158+
159+
- name: Install dependencies
160+
run: |
161+
sudo apt-get update
162+
sudo apt-get install -y automake build-essential cmake git \
163+
gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad \
164+
gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly \
165+
gstreamer1.0-tools \
166+
libcurl4-openssl-dev libgstreamer1.0-dev \
167+
libgstreamer-plugins-base1.0-dev liblog4cplus-dev \
168+
libssl-dev pkg-config mkvtoolnix
169+
170+
- name: Setup build directory
171+
run: |
172+
mkdir -p build
173+
cd build
174+
175+
- name: Build kvssink
176+
working-directory: ./build
177+
run: |
178+
cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DCMAKE_BUILD_TYPE=Debug -DALIGNED_MEMORY_MODEL=ON -DBUILD_DEPENDENCIES=OFF
179+
make -j$(nproc)
180+
181+
- name: Configure AWS Credentials
182+
uses: aws-actions/configure-aws-credentials@v4
183+
with:
184+
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
185+
role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }}
186+
aws-region: ${{ secrets.AWS_REGION }}
187+
role-duration-seconds: 10800
188+
189+
- name: Run kvssink with dump dir
190+
env:
191+
GST_PLUGIN_PATH: ${{ github.workspace }}/build
192+
KVS_DEBUG_DUMP_DATA_FILE_DIR: ${{ github.workspace }}/build/debug_output
193+
working-directory: ./build
194+
run: |
195+
mkdir -p debug_output
196+
gst-launch-1.0 videotestsrc is-live=true num-buffers=450 \
197+
! video/x-raw,framerate=30/1,width=640,height=480 \
198+
! videoconvert ! x264enc tune=zerolatency key-int-max=45 \
199+
! h264parse \
200+
! kvssink stream-name="demo-stream"
201+
202+
- name: Verify MKV dump
203+
working-directory: ./build/debug_output
204+
run: |
205+
mkvfiles=(*.mkv)
206+
if [ ${#mkvfiles[@]} -eq 0 ]; then
207+
echo "No MKV files found in debug_output"
208+
exit 1
209+
fi
210+
211+
for file in "${mkvfiles[@]}"; do
212+
echo "Verifying $file with mkvinfo (verbose and hexdump):"
213+
mkvinfo -v -X "$file"
214+
done
215+
85216
windows-debug-dump-dir:
86217
runs-on: windows-2022
87218
env:
@@ -141,6 +272,6 @@ jobs:
141272
142273
# Run mkvinfo on each MKV file
143274
foreach ($file in $mkvFiles) {
144-
Write-Output "Verifying $($file.FullName) with mkvinfo:"
145-
mkvinfo.exe "$($file.FullName)"
275+
Write-Output "Verifying $($file.FullName) with mkvinfo (verbose and hexdump):"
276+
mkvinfo.exe -v -X "$($file.FullName)"
146277
}

0 commit comments

Comments
 (0)