forked from Open-Cascade-SAS/OCCT
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Testing - Ubuntu build validation Open-Cascade-SAS#251
Add GitHub Actions workflow for Ubuntu build validation TODO: check static build with VTK support
- Loading branch information
Showing
2 changed files
with
183 additions
and
1 deletion.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
# This workflow validates the build on the latest Ubuntu version (24.04) using multiple configurations. | ||
# It is triggered on pushes to the master branch. | ||
# The workflow includes steps to install dependencies, configure, build, and clean up the project for different configurations. | ||
|
||
name: Ubuntu build validation | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- '**' | ||
push: | ||
branches: | ||
- 'master' | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
main_job: | ||
name: Latest ubuntu validation | ||
runs-on: ubuntu-24.04 | ||
|
||
strategy: | ||
matrix: | ||
config: | ||
- { | ||
name: "GCC", | ||
cc: "gcc", | ||
cxx: "g++" | ||
} | ||
- { | ||
name: "Clang", | ||
cc: "clang", | ||
cxx: "clang++" | ||
} | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/[email protected] | ||
|
||
- name: Install dependencies | ||
run: sudo apt-get update && sudo apt-get install -y ninja-build tcl-dev tk-dev cmake clang gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev tcllib tcl-thread tcl libvtk9-dev libopenvr-dev libdraco-dev libfreeimage-dev libegl1-mesa-dev libgles2-mesa-dev libfreetype-dev libjemalloc-dev | ||
|
||
- name: Install rapidjson | ||
run: | | ||
wget https://github.com/Tencent/rapidjson/archive/858451e5b7d1c56cf8f6d58f88cf958351837e53.zip -O rapidjson.zip | ||
unzip rapidjson.zip | ||
- name: Configure basic | ||
run: | | ||
mkdir -p build | ||
cd build | ||
cmake -G "Ninja" \ | ||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \ | ||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \ | ||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \ | ||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" .. | ||
- name: Build basic | ||
run: | | ||
cd build | ||
cmake --build . -- -j 4 | ||
- name: Clear up after build | ||
run: | | ||
rm -rf build | ||
- name: Configure full shared | ||
run: | | ||
mkdir -p build | ||
cd build | ||
cmake -G "Ninja" \ | ||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \ | ||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \ | ||
-D BUILD_USE_PCH=OFF \ | ||
-D BUILD_INCLUDE_SYMLINK=ON \ | ||
-D BUILD_OPT_PROFILE=Production \ | ||
-D BUILD_LIBRARY_TYPE=Shared \ | ||
-D USE_TK=ON \ | ||
-D CMAKE_BUILD_TYPE=Debug \ | ||
-D USE_MMGR_TYPE=JEMALLOC \ | ||
-D INSTALL_DIR=${{ github.workspace }}/install \ | ||
-D 3RDPARTY_RAPIDJSON_DIR=${{ github.workspace }}/rapidjson-858451e5b7d1c56cf8f6d58f88cf958351837e53 \ | ||
-D USE_FREETYPE=ON \ | ||
-D USE_DRACO=ON \ | ||
-D USE_FFMPEG=OFF \ | ||
-D USE_FREEIMAGE=ON \ | ||
-D USE_GLES2=ON \ | ||
-D USE_OPENVR=ON \ | ||
-D USE_VTK=ON \ | ||
-D USE_TBB=ON \ | ||
-D USE_RAPIDJSON=ON \ | ||
-D USE_OPENGL=ON \ | ||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \ | ||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" .. | ||
- name: Build full shared | ||
run: | | ||
cd build | ||
cmake --build . --target install --config Debug -- -j 4 | ||
- name: Clear up after build | ||
run: | | ||
rm -rf build | ||
rm -rf ${{ github.workspace }}/install | ||
- name: Configure full static | ||
run: | | ||
mkdir -p build | ||
cd build | ||
cmake -G "Ninja" \ | ||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \ | ||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \ | ||
-D BUILD_USE_PCH=OFF \ | ||
-D BUILD_INCLUDE_SYMLINK=ON \ | ||
-D BUILD_OPT_PROFILE=Production \ | ||
-D BUILD_LIBRARY_TYPE=Static \ | ||
-D USE_TK=ON \ | ||
-D CMAKE_BUILD_TYPE=Debug \ | ||
-D USE_MMGR_TYPE=JEMALLOC \ | ||
-D INSTALL_DIR=${{ github.workspace }}/install \ | ||
-D 3RDPARTY_RAPIDJSON_DIR=${{ github.workspace }}/rapidjson-858451e5b7d1c56cf8f6d58f88cf958351837e53 \ | ||
-D USE_FREETYPE=ON \ | ||
-D USE_DRACO=ON \ | ||
-D USE_FFMPEG=OFF \ | ||
-D USE_FREEIMAGE=ON \ | ||
-D USE_GLES2=ON \ | ||
-D USE_OPENVR=ON \ | ||
-D USE_VTK=OFF \ | ||
-D USE_TBB=ON \ | ||
-D USE_RAPIDJSON=ON \ | ||
-D USE_OPENGL=ON \ | ||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \ | ||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" .. | ||
- name: Build full static | ||
run: | | ||
cd build | ||
cmake --build . --target install --config Debug -- -j 4 | ||
- name: Clear up after build | ||
run: | | ||
rm -rf build | ||
rm -rf ${{ github.workspace }}/install | ||
- name: Configure full with DEBUG define | ||
run: | | ||
mkdir -p build | ||
cd build | ||
cmake -G "Ninja" \ | ||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \ | ||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \ | ||
-D BUILD_WITH_DEBUG=ON \ | ||
-D BUILD_USE_PCH=OFF \ | ||
-D BUILD_INCLUDE_SYMLINK=ON \ | ||
-D BUILD_OPT_PROFILE=Production \ | ||
-D BUILD_LIBRARY_TYPE=Shared \ | ||
-D USE_TK=ON \ | ||
-D CMAKE_BUILD_TYPE=Debug \ | ||
-D INSTALL_DIR=${{ github.workspace }}/install \ | ||
-D 3RDPARTY_RAPIDJSON_DIR=${{ github.workspace }}/rapidjson-858451e5b7d1c56cf8f6d58f88cf958351837e53 \ | ||
-D USE_FREETYPE=ON \ | ||
-D USE_DRACO=ON \ | ||
-D USE_FFMPEG=OFF \ | ||
-D USE_FREEIMAGE=ON \ | ||
-D USE_GLES2=ON \ | ||
-D USE_OPENVR=ON \ | ||
-D USE_VTK=ON \ | ||
-D USE_TBB=ON \ | ||
-D USE_RAPIDJSON=ON \ | ||
-D USE_OPENGL=ON .. | ||
- name: Build full with DEBUG define | ||
run: | | ||
cd build | ||
cmake --build . --target install --config Debug -- -j 4 | ||
- name: Clear up after build | ||
run: | | ||
rm -rf build | ||
rm -rf ${{ github.workspace }}/install |
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