Skip to content

wip

wip #2

# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage.

Check failure on line 1 in .github/workflows/cmake-single-platform.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/cmake-single-platform.yml

Invalid workflow file

(Line: 73, Col: 7): Required property is missing: run
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml
name: CMake on a single platform
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libopencascade-dev \
libboost-dev \
libgl1-mesa-dev \
libglfw3-dev \
libglew-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
build-essential \
cmake
- name: Find OpenCASCADE installation path
id: find_occt
run: |
# Find OpenCASCADE CMake config file
OCCT_CONFIG=$(find /usr -name "OpenCASCADEConfig.cmake" -o -name "opencascade-config.cmake" 2>/dev/null | head -1)
if [ -n "$OCCT_CONFIG" ]; then
OCCT_DIR=$(dirname "$OCCT_CONFIG")
echo "OpenCASCADE_DIR=$OCCT_DIR" >> $GITHUB_ENV
echo "Found OpenCASCADE at: $OCCT_DIR"
else
# Try common installation paths
for path in "/usr/lib/x86_64-linux-gnu/cmake/opencascade" "/usr/lib/cmake/opencascade" "/usr/share/cmake/opencascade"; do
if [ -d "$path" ]; then
echo "OpenCASCADE_DIR=$path" >> $GITHUB_ENV
echo "Found OpenCASCADE at: $path"
exit 0
fi
done
echo "ERROR: Could not find OpenCASCADE installation"
echo "Searching for OpenCASCADE files..."
find /usr -name "*OpenCASCADE*" -o -name "*opencascade*" 2>/dev/null | head -20
exit 1
fi
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DOpenCASCADE_DIR=${{env.OpenCASCADE_DIR}}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail