Skip to content

CI

CI #23

Workflow file for this run

name: CI
on:
push:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq nasm g++-multilib gcc-multilib libc6-dev-i386 python3-pip python3-setuptools
- run: sudo python3 -m pip install meson==0.52.1 ninja
- run: nasm -v
- run: c++ --version
- run: make gmp-bootstrap
- run: make gtest-bootstrap
- run: meson builddir --werror
- run: ninja -C builddir -v
- run: ( cd test/encoder_binary_comparison ; CFLAGS=-Werror ./run_PrepareAllTestData.sh 64 )
- run: meson test -C builddir -v
- run: ./run_Test.sh BinaryCompare BA_MW_D.264
- run: ./run_Test.sh BinaryCompare Adobe_PDF_sample_a_1024x768_50Frms.264
- run: ./run_Test.sh BinaryCompare Zhling_1280x720.264
asan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq nasm
- run: nasm -v
- run: c++ --version
- run: make gtest-bootstrap
- run: LDFLAGS=-fsanitize=address CFLAGS=-fsanitize=address make -j$(nproc)
- run: ./codec_unittest
windows:
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
- run: choco install nasm
# nasm is not installed into the $PATH so add it manually
- run: echo "C:\Program Files\NASM" >> $env:GITHUB_PATH
- run: nasm -v
- run: make OS=msvc gmp-bootstrap
- run: make OS=msvc gtest-bootstrap
- working-directory: ./build
env:
CFLAGS: -WX
run: ./AutoBuildForWindows.bat
- run: ./bin/Win32/Release/codec_unittest.exe
mingw:
runs-on: windows-2019
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: >-
git
make
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-nasm
mingw-w64-x86_64-meson
- uses: actions/checkout@v3
- run: c++ --version
- run: make gmp-bootstrap
- run: make gtest-bootstrap
# disable Werror on gcc 12 until #3533 is fixed.
#- run: CFLAGS=-Werror make -j$(nproc) all plugin test
- run: make -j$(nproc) all plugin test
#- run: meson builddir --werror
- run: meson builddir
- run: ninja -C builddir -v
- run: meson test -C builddir -v
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- run: brew install nasm meson
- run: make gmp-bootstrap
- run: make gtest-bootstrap
- run: nasm -v
- run: c++ --version
- run: CFLAGS=-Werror make -j$(sysctl -n hw.ncpu) all plugin test
- run: meson builddir --werror
- run: ninja -C builddir -v
- run: meson test -C builddir -v
linux-cross-arm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update -qq
- run: sudo apt-get install -qq g++-arm-linux-gnueabihf g++-aarch64-linux-gnu qemu-user
- run: arm-linux-gnueabihf-g++ --version
- run: make gmp-bootstrap
- run: make gtest-bootstrap
- run: CFLAGS=-Werror make -j$(nproc) ARCH=armv7 CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
- run: CFLAGS=-Werror make clean
- run: CFLAGS=-Werror make -j$(nproc) ARCH=aarch64 CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./codec_unittest
macos-cross-arm64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- run: make gmp-bootstrap
- run: make gtest-bootstrap
- run: c++ --version
- run: CFLAGS=-Werror make -j$(sysctl -n hw.ncpu) ARCH=arm64
fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'openh264'
language: c++
- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'openh264'
language: c++
fuzz-seconds: 600
- name: Upload Crash
uses: actions/upload-artifact@v1
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
path: ./out/artifacts