Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
24a14c6
Modeling - Segfault on chamfer or fillet approaching ellipse (#738)
AtheneNoctuaPt Oct 7, 2025
fcd70cf
Modeling - Crash in BRepOffsetAPI_MakePipeShell (#740)
AtheneNoctuaPt Oct 9, 2025
7c248e5
Modelling - Crash in BRepFilletAPI_MakeChamfer (#743)
AtheneNoctuaPt Oct 16, 2025
a624ea5
Application Framework - Early-return null NamedShape when TNaming_Use…
dpasukhi Oct 24, 2025
92d7251
Visualization - Improve detection of full cylinder/cone parameters #830
gkv311 Nov 24, 2025
64ee2b1
Modeling - BRepFilletAPI_MakeFillet::Add hangs on adding edge (#859)
AtheneNoctuaPt Nov 27, 2025
b263236
Modelling - Boolean fuse segfaults on loft (#860)
AtheneNoctuaPt Nov 29, 2025
f2a1716
Modeling - BRepBuilderAPI_GTransform face stretch crash (#875)
AtheneNoctuaPt Dec 4, 2025
0eb60a5
Modelling - ShapeUpgrade_UnifySameDomain crash (#876)
AtheneNoctuaPt Dec 4, 2025
fe019d4
Modeling - Memory consumption in BOPAlgo_PaveFiller_6.cxx (#864)
dpasukhi Nov 30, 2025
d0ac6b9
Data Exchange - Hang in STEPCAFControl_Reader (#733)
AtheneNoctuaPt Sep 24, 2025
12a63a7
Shape Healing - Optimize FixFaceOrientation (#584)
dpasukhi Oct 11, 2025
481ea96
Shape Healing - Regression after #584 (#753)
dpasukhi Oct 21, 2025
855c15b
Shape Healing - Regression after #584 (#769)
dpasukhi Oct 27, 2025
bba5633
Coding - Bump version to 7.9.3
dpasukhi Dec 5, 2025
9ea6beb
Testing - Add build-windows-packages workflow
dpasukhi Oct 25, 2025
a016080
Testing - Update build-windows-packages workflow for OCCT version 7.9.3
dpasukhi Dec 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
341 changes: 341 additions & 0 deletions .github/workflows/build-windows-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,341 @@
# This workflow builds OCCT Windows packages using prepared 3rd-party archives.
# It creates various package configurations (Release/Debug, with/without PCH).
# The workflow is designed to build each package variant on separate machines for optimal isolation.

name: Build Windows Packages

on:
pull_request:
branches:
- '**'
push:
branches:
- 'master'

permissions:
contents: read

env:
OCCT_VERSION: '7.9.3'
THIRDPARTY_URL: 'https://github.com/Open-Cascade-SAS/OCCT/releases/download/V7_9_0_beta1/3rdparty-vc14-64.zip'

jobs:
# Build 3rd-party package
package-thirdparty:
name: Package 3rd-party VC++ 2022 64-bit
runs-on: windows-2022

steps:
- name: Download 3rd-party dependencies
run: |
Invoke-WebRequest -Uri $env:THIRDPARTY_URL -OutFile 3rdparty-vc14-64.zip
shell: pwsh

- name: Upload 3rd-party package
uses: actions/upload-artifact@v4.4.3
with:
name: 3rdparty-vc14-64
path: 3rdparty-vc14-64.zip
retention-days: 30

# Build OCCT without PCH (Release + Debug)
build-no-pch:
name: Build OCCT without PCH (Release + Debug)
runs-on: windows-2022

steps:
- name: Checkout repository
uses: actions/checkout@v4.2.1

- name: Download and extract 3rd-party dependencies
run: |
Invoke-WebRequest -Uri $env:THIRDPARTY_URL -OutFile 3rdparty-vc14-64.zip
Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath .
Remove-Item 3rdparty-vc14-64.zip
shell: pwsh

- name: Configure OCCT
run: |
mkdir build
cd build
cmake -T host=x64 `
-D BUILD_USE_PCH=OFF `
-D BUILD_GTEST=OFF `
-D BUILD_Inspector=ON `
-D BUILD_INCLUDE_SYMLINK=ON `
-D BUILD_CPP_STANDARD=C++17 `
-D USE_DRACO=ON `
-D USE_FREETYPE=ON `
-D USE_RAPIDJSON=ON `
-D USE_MMGR_TYPE=JEMALLOC `
-D USE_TBB=ON `
-D USE_VTK=ON `
-D USE_TK=ON `
-D USE_OPENVR=ON `
-D USE_OPENGL=ON `
-D USE_GLES2=ON `
-D USE_FREEIMAGE=ON `
-D USE_FFMPEG=ON `
-D USE_D3D=ON `
-D BUILD_OPT_PROFILE=Production `
-D BUILD_MODULE_Draw=ON `
-D BUILD_MODULE_ApplicationFramework=ON `
-D BUILD_MODULE_DataExchange=ON `
-D BUILD_MODULE_FoundationClasses=ON `
-D BUILD_MODULE_ModelingAlgorithms=ON `
-D BUILD_MODULE_ModelingData=ON `
-D BUILD_MODULE_Visualization=ON `
-D 3RDPARTY_DIR=${{ github.workspace }}/3rdparty-vc14-64 `
-D INSTALL_DIR=${{ github.workspace }}/occt-vc14-64 ..
shell: pwsh

- name: Build and Install OCCT Release
run: |
cd build
cmake --build . --target install --config Release
shell: pwsh

- name: Fix env.bat THIRDPARTY_DIR path
run: |
$envBatPath = "${{ github.workspace }}/occt-vc14-64/env.bat"
if (Test-Path $envBatPath) {
$content = Get-Content $envBatPath -Raw
$content = $content -replace 'THIRDPARTY_DIR=.*3rdparty-vc14-64"', 'THIRDPARTY_DIR=..\3rdparty-vc14-64"'
Set-Content -Path $envBatPath -Value $content -NoNewline
Write-Host "Updated env.bat with relative THIRDPARTY_DIR path"
}
shell: pwsh

- name: Create OCCT Release package
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $folderName -DestinationPath "$folderName.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload OCCT Release package
uses: actions/upload-artifact@v4.4.3
with:
name: opencascade-release-no-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64.zip
retention-days: 30

- name: Create combined package (Release + 3rd-party)
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
$thirdpartyName = "3rdparty-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $thirdpartyName,$folderName -DestinationPath "$folderName-combined.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload combined Release package
uses: actions/upload-artifact@v4.4.3
with:
name: occt-combined-release-no-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-combined.zip
retention-days: 30

- name: Build and Install OCCT Debug (keeping Release files)
run: |
cd build
cmake --build . --target install --config Debug
shell: pwsh

- name: Fix env.bat THIRDPARTY_DIR path for Debug
run: |
$envBatPath = "${{ github.workspace }}/occt-vc14-64/env.bat"
if (Test-Path $envBatPath) {
$content = Get-Content $envBatPath -Raw
$content = $content -replace 'THIRDPARTY_DIR=.*3rdparty-vc14-64"', 'THIRDPARTY_DIR=..\3rdparty-vc14-64"'
Set-Content -Path $envBatPath -Value $content -NoNewline
Write-Host "Updated env.bat with relative THIRDPARTY_DIR path"
}
shell: pwsh

- name: Create OCCT Release+Debug package
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $folderName -DestinationPath "opencascade-$version-vc14-64-with-debug.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload OCCT Release+Debug package
uses: actions/upload-artifact@v4.4.3
with:
name: opencascade-with-debug-no-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-with-debug.zip
retention-days: 30

- name: Create combined package (Release+Debug + 3rd-party)
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
$thirdpartyName = "3rdparty-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $thirdpartyName,$folderName -DestinationPath "$folderName-with-debug-combined.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload combined Release+Debug package
uses: actions/upload-artifact@v4.4.3
with:
name: occt-combined-with-debug-no-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-with-debug-combined.zip
retention-days: 30

# Build OCCT with PCH (Release + Debug)
build-pch:
name: Build OCCT with PCH (Release + Debug)
runs-on: windows-2022

steps:
- name: Checkout repository
uses: actions/checkout@v4.2.1

- name: Download and extract 3rd-party dependencies
run: |
Invoke-WebRequest -Uri $env:THIRDPARTY_URL -OutFile 3rdparty-vc14-64.zip
Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath .
Remove-Item 3rdparty-vc14-64.zip
shell: pwsh

- name: Configure OCCT
run: |
mkdir build
cd build
cmake -T host=x64 `
-D BUILD_USE_PCH=ON `
-D BUILD_GTEST=OFF `
-D BUILD_Inspector=ON `
-D BUILD_INCLUDE_SYMLINK=ON `
-D BUILD_CPP_STANDARD=C++17 `
-D USE_DRACO=ON `
-D USE_FREETYPE=ON `
-D USE_RAPIDJSON=ON `
-D USE_MMGR_TYPE=JEMALLOC `
-D USE_TBB=ON `
-D USE_VTK=ON `
-D USE_TK=ON `
-D USE_OPENVR=ON `
-D USE_OPENGL=ON `
-D USE_GLES2=ON `
-D USE_FREEIMAGE=ON `
-D USE_FFMPEG=ON `
-D USE_D3D=ON `
-D BUILD_OPT_PROFILE=Production `
-D BUILD_MODULE_Draw=ON `
-D BUILD_MODULE_ApplicationFramework=ON `
-D BUILD_MODULE_DataExchange=ON `
-D BUILD_MODULE_FoundationClasses=ON `
-D BUILD_MODULE_ModelingAlgorithms=ON `
-D BUILD_MODULE_ModelingData=ON `
-D BUILD_MODULE_Visualization=ON `
-D 3RDPARTY_DIR=${{ github.workspace }}/3rdparty-vc14-64 `
-D INSTALL_DIR=${{ github.workspace }}/occt-vc14-64 ..
shell: pwsh

- name: Build and Install OCCT Release
run: |
cd build
cmake --build . --target install --config Release
shell: pwsh

- name: Fix env.bat THIRDPARTY_DIR path
run: |
$envBatPath = "${{ github.workspace }}/occt-vc14-64/env.bat"
if (Test-Path $envBatPath) {
$content = Get-Content $envBatPath -Raw
$content = $content -replace 'THIRDPARTY_DIR=.*3rdparty-vc14-64"', 'THIRDPARTY_DIR=..\3rdparty-vc14-64"'
Set-Content -Path $envBatPath -Value $content -NoNewline
Write-Host "Updated env.bat with relative THIRDPARTY_DIR path"
}
shell: pwsh

- name: Create OCCT Release PCH package
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $folderName -DestinationPath "opencascade-$version-vc14-64-pch.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload OCCT Release PCH package
uses: actions/upload-artifact@v4.4.3
with:
name: opencascade-release-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-pch.zip
retention-days: 30

- name: Create combined PCH package (Release + 3rd-party)
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
$thirdpartyName = "3rdparty-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $thirdpartyName,$folderName -DestinationPath "$folderName-pch-combined.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload combined Release PCH package
uses: actions/upload-artifact@v4.4.3
with:
name: occt-combined-release-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-pch-combined.zip
retention-days: 30

- name: Build and Install OCCT Debug (keeping Release files)
run: |
cd build
cmake --build . --target install --config Debug
shell: pwsh

- name: Fix env.bat THIRDPARTY_DIR path for Debug
run: |
$envBatPath = "${{ github.workspace }}/occt-vc14-64/env.bat"
if (Test-Path $envBatPath) {
$content = Get-Content $envBatPath -Raw
$content = $content -replace 'THIRDPARTY_DIR=.*3rdparty-vc14-64"', 'THIRDPARTY_DIR=..\3rdparty-vc14-64"'
Set-Content -Path $envBatPath -Value $content -NoNewline
Write-Host "Updated env.bat with relative THIRDPARTY_DIR path"
}
shell: pwsh

- name: Create OCCT Release+Debug PCH package
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $folderName -DestinationPath "opencascade-$version-vc14-64-pch-with-debug.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload OCCT Release+Debug PCH package
uses: actions/upload-artifact@v4.4.3
with:
name: opencascade-with-debug-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-pch-with-debug.zip
retention-days: 30

- name: Create combined PCH package (Release+Debug + 3rd-party)
run: |
$version = $env:OCCT_VERSION
$folderName = "opencascade-$version-vc14-64"
$thirdpartyName = "3rdparty-vc14-64"
Rename-Item occt-vc14-64 $folderName
Compress-Archive -Path $thirdpartyName,$folderName -DestinationPath "$folderName-pch-with-debug-combined.zip"
Rename-Item $folderName occt-vc14-64
shell: pwsh

- name: Upload combined Release+Debug PCH package
uses: actions/upload-artifact@v4.4.3
with:
name: occt-combined-with-debug-pch
path: opencascade-${{ env.OCCT_VERSION }}-vc14-64-pch-with-debug-combined.zip
retention-days: 30
2 changes: 1 addition & 1 deletion adm/cmake/version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@

set (OCC_VERSION_MAJOR 7 )
set (OCC_VERSION_MINOR 9 )
set (OCC_VERSION_MAINTENANCE 2 )
set (OCC_VERSION_MAINTENANCE 3 )
Loading
Loading