
Mon, 01/20/2025 - 15:52
Dear OCCT community,
The GitHub Action workflow has been updated to provide building validation on:
- Windows (Clang/MSVC/MinGW)
- MacOS (GCC/Clang)
- Ubuntu (GCC/Clang)
A full compilation validation cycle is initiated only upon integration of the weekly integration branch (IR) into the master branch.
Each pull request (PR) undergoes DRAWEXE testing grid validation (on public data only) to help validate changes for all users. Note that the OCCT team utilizes an internal testing system that may differ from the GitHub Actions environment and includes commercial data files and tests on our commercial extensions.
GitHub Integration Workflow
Licensing: OCCT is available under the LGPL 2.1 license. To integrate any changes into our repositories, collaborators must sign the Contributor License Agreement (CLA). Details on signing and submitting the CLA are available on the [CONTRIBUTING.md](https://github.com/Open-Cascade-SAS/OCCT/blob/master/.github/CONTRIBUTING.md) page.
Forking: PRs to the OCCT repository are accepted only from external forks. Please create your own fork and work within your repository during development.
PR Submission: Once you have completed your code updates and prepared the final fix, please submit a PR to the OpenCascade OCCT repository using the following templates:
PR Name Template:
<Category(es)> - <Summary description>
PR Description: Should include the following details:
- Steps to reproduce the issue.
- Any necessary files related to the bug.
- Version of OCCT where the bug was found.
- Type of the issue (minor, major, crash, documentation).
- Platform where the issue was found or fixed.
Testing: GitHub PRs have an automatic testing hook on each push to the PR branch. There are 4 stages of validation:
Build: Checks for warnings and successful compilation. If errors occur, the job will fail, and you can check the logs. If successful, you can download the compilation result (artifact
install-*.zip
).Testing: Performs DRAWEXE test grid with over 12k tests. This stage always succeeds; it validates that the tests run without errors. You can download the HTML report with all details (artifact
results-*.zip
).Test Validation: Performs tests for regressions. If errors occur, the job will be marked as failed. All regressions will be compiled into a small HTML report available as an artifact (
results-*-retest.zip
). You can retest this job to regenerate the results, which can help avoid some unstable test cases.Summarization: Always succeeds. This stage updates all
results-*.zip
artifacts with comparisons to the target branch, adding adiff.html
file with image, CPU, and memory differences. It also generates a single archive with each job's result in a single artifact (test-compare-results.zip
).
Code review: The OCCT team will review your changes and integrate them into the IR branch and then into the latest master.
Test Suites
For master branch:
- Build Documentation / Build Refman Documentation (push)
- Build OCCT with vcpkg / build (ubuntu-24.04, Debug) (push)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Windows with MSVC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Windows with MSVC (x64) (push)
- Code Analysis / CodeQL Analyze (C/C++) (push)
- MSVC build validation / Windows MSVC/Clang validation (MSVC, cl, cl, Visual Studio 17 2022, host=x64, /W4 /WX, /W4 /WX) (push)
- MinGW build validation / Windows MinGW validation (GCC, x86_64-w64-mingw32-gcc, x86_64-w64-mingw32-g++, mingw-w64-x86_64-t... (push)
- Ubuntu build validation / Latest ubuntu validation (GCC, gcc, g++) (push)
- Build OCCT with vcpkg / build (ubuntu-24.04, Release) (push)
- MSVC build validation / Windows MSVC/Clang validation (Clang, clang, clang++, Ninja, -Werror -Wall -Wextra -Wno-unknown-w... (push)
- MinGW build validation / Windows MinGW validation (Clang, clang, clang++, mingw-w64-clang-x86_64-toolchain, /clang64, ming... (push)
- Ubuntu build validation / Latest ubuntu validation (Clang, clang, clang++) (push)
- Build OCCT with vcpkg / build (ubuntu-22.04, Debug) (push)
- MinGW build validation / Windows MinGW validation (UCRT, x86_64-w64-mingw32-gcc, x86_64-w64-mingw32-g++, mingw-w64-ucrt-x8... (push)
- Build OCCT with vcpkg / build (ubuntu-22.04, Release) (push)
- Build OCCT with vcpkg / build (ubuntu-20.04, Debug) (push)
- Build OCCT with vcpkg / build (ubuntu-20.04, Release) (push)
- Build OCCT with vcpkg / build (windows-2022, Debug) (push)
- Build OCCT with vcpkg / build (windows-2022, Release) (push)
- Build OCCT with vcpkg / build (windows-2019, Debug) (push)
- Build OCCT with vcpkg / build (windows-2019, Release) (push)
- Build OCCT with vcpkg / build (macos-15, Debug) (push)
- Build OCCT with vcpkg / build (macos-15, Release) (push)
- Build OCCT with vcpkg / build (macos-14, Debug) (push)
- Build OCCT with vcpkg / build (macos-14, Release) (push)
- Build OCCT with vcpkg / build (macos-13, Debug) (push)
- Build OCCT with vcpkg / build (macos-13, Release) (push)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Windows with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Windows with Clang (x64) (push)
- Code Analysis / Microsoft C++ Code Analysis (push)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on macOS with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on macOS with Clang (x64) (push)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on macOS with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on macOS with GCC (x64) (push)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Ubuntu with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Ubuntu with Clang (x64) (push)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Ubuntu with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Ubuntu with GCC (x64) (push)
- Build and Test OCCT on Multiple Platforms / Test on Windows (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Windows (x64) (push)
- Build and Test OCCT on Multiple Platforms / Test on Windows with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Windows with Clang (x64) (push)
- Build and Test OCCT on Multiple Platforms / Test on macOS (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on macOS (x64) (push)
- Build and Test OCCT on Multiple Platforms / Test on macOS with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on macOS with GCC (x64) (push)
- Build and Test OCCT on Multiple Platforms / Test on Linux with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Linux with Clang (x64) (push)
- Build and Test OCCT on Multiple Platforms / Test on Linux with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Linux with GCC (x64) (push)
- Build and Test OCCT on Multiple Platforms / Regression Test on Windows (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Windows (x64) (push)
- Build and Test OCCT on Multiple Platforms / Regression Test on Windows with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Windows with Clang (x64) (push)
- Build and Test OCCT on Multiple Platforms / Regression Test on macOS (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on macOS (x64) (push)
- Build and Test OCCT on Multiple Platforms / Regression Test on macOS with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on macOS with GCC (x64) (push)
- Build and Test OCCT on Multiple Platforms / Regression Test on Linux with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Linux with Clang (x64) (push)
- Build and Test OCCT on Multiple Platforms / Regression Test on Linux with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Linux with GCC (x64) (push)
- Build and Test OCCT on Multiple Platforms / Summarize Test Results (push)
- Build and Test OCCT on Multiple Platforms / Summarize Test Results (pull_request)
For any pull request:
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Windows with MSVC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Windows with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on macOS with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on macOS with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Ubuntu with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Prepare and Build on Ubuntu with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Windows (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Windows with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on macOS (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on macOS with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Linux with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Test on Linux with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Windows (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Windows with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on macOS (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on macOS with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Linux with Clang (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Regression Test on Linux with GCC (x64) (pull_request)
- Build and Test OCCT on Multiple Platforms / Summarize Test Results (pull_request)
Best regards, OCCT3d development team.