Skip to content

Commit

Permalink
Merge branch 'master' into std-function-based-callbacks
Browse files Browse the repository at this point in the history
  • Loading branch information
GerHobbelt committed Jan 11, 2025
2 parents b188f65 + 4d47c1b commit 55de24c
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/cmake-unittest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: unittest_cmake
# autotools build on ubuntu. unittests with address sanitizers. with openmp.
# ubuntu-20.04-gcc-unittest - CI runs out of diskspace.
on:
#push:
pull_request:
paths:
- '**.cpp'
- '**.h'
- '**Makefile.am'
- '/configure.ac'
- 'unittest/**.c'
- 'unittest/**.cc'
schedule:
- cron: 0 0 * * *
workflow_dispatch:

jobs:
sanitizers:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- { name: ubuntu-24.04-gcc-unittest, os: ubuntu-24.04, cxx: g++, cxxflags: '-g -O2 -fsanitize=address,undefined' }
- { name: ubuntu-22.04-clang-unittest, os: ubuntu-22.04, cxx: clang++, cxxflags: '-g -O2 -fsanitize=address,undefined -stdlib=libc++' }
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Remove Homebrew, Android and .NET to provide more disk space
run: |
# https://github.com/actions/virtual-environments/issues/2606#issuecomment-772683150
sudo rm -rf /home/linuxbrew # will release Homebrew
sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android
sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET
- name: Install dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install autoconf libleptonica-dev libpango1.0-dev -y
sudo apt-get install cabextract -y
- name: Setup
run: |
./autogen.sh
- name: Configure (Linux)
run: |
cmake -S . -B build -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_TRAINING_TOOLS=ON -DBUILD_TESTS=ON \
-DCMAKE_BUILD_TYPE=Release 'CXX=${{ matrix.config.cxx }}' 'CXXFLAGS=${{ matrix.config.cxxflags }}'
- name: Make and Install Tesseract
run: |
${{ matrix.config.cxx }} --version
cmake --build build --config Release -j
- name: Download fonts, tessdata and langdata required for tests
run: |
git clone https://github.com/egorpugin/tessdata tessdata_unittest
cp tessdata_unittest/fonts/* test/testing/
mv tessdata_unittest/* ../
- name: Make and run Unit Tests
run: |
cd build
ctest -C Release --output-on-failure -O test-suite.log -j 4
- name: Display Unit Tests Report and Compiler Version
run: |
cat test-suite.log
${{ matrix.config.cxx }} --version
git log -3 --pretty=format:'%h %ad %s | %an'
if: always()

0 comments on commit 55de24c

Please sign in to comment.