mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-06-30 12:14:08 +03:00
558 lines
14 KiB
YAML
558 lines
14 KiB
YAML
# This workflow builds and tests OCCT on multiple platforms (Windows, macOS, Linux with Clang, and Linux with GCC).
|
|
# It is triggered on pull requests to any branch.
|
|
# The workflow includes steps to prepare and build the project on each platform, run tests, and upload the results.
|
|
# Concurrency is set to ensure that only one instance of the workflow runs per pull request at a time.
|
|
|
|
name: Build and Test OCCT on Multiple Platforms
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- '**'
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
cancel-in-progress: ${{ !(github.ref == 'refs/heads/IR' && github.repository == 'Open-Cascade-SAS/OCCT') }}
|
|
|
|
jobs:
|
|
clang-format:
|
|
name: Check code formatting
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Run clang-format check
|
|
uses: ./.github/actions/clang-format-check
|
|
with:
|
|
base-ref: ${{ github.event.pull_request.base.ref || 'master' }}
|
|
|
|
documentation:
|
|
name: Build Documentation
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.2.1
|
|
|
|
- name: Build documentation
|
|
uses: ./.github/actions/build-docs
|
|
|
|
prepare-and-build-windows-x64:
|
|
name: Prepare and Build on Windows with MSVC (x64)
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build OCCT
|
|
uses: ./.github/actions/build-occt
|
|
with:
|
|
platform: windows
|
|
compiler: msvc
|
|
artifact-name: install-windows-x64
|
|
|
|
prepare-and-build-windows-clang-x64:
|
|
name: Prepare and Build on Windows with Clang (x64)
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build OCCT
|
|
uses: ./.github/actions/build-occt
|
|
with:
|
|
platform: windows
|
|
compiler: clang
|
|
artifact-name: install-windows-clang-x64
|
|
use-vtk: 'false'
|
|
|
|
prepare-and-build-macos-x64:
|
|
name: Prepare and Build on macOS with Clang (x64)
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build OCCT
|
|
uses: ./.github/actions/build-occt
|
|
with:
|
|
platform: macos
|
|
compiler: clang
|
|
artifact-name: install-macos-x64
|
|
|
|
prepare-and-build-macos-gcc-x64:
|
|
name: Prepare and Build on macOS with GCC (x64)
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build OCCT
|
|
uses: ./.github/actions/build-occt
|
|
with:
|
|
platform: macos
|
|
compiler: gcc
|
|
artifact-name: install-macos-gcc-x64
|
|
|
|
prepare-and-build-linux-clang-x64:
|
|
name: Prepare and Build on Ubuntu with Clang (x64)
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build OCCT
|
|
uses: ./.github/actions/build-occt
|
|
with:
|
|
platform: linux
|
|
compiler: clang
|
|
artifact-name: install-linux-clang-x64
|
|
|
|
prepare-and-build-linux-gcc-x64:
|
|
name: Prepare and Build on Ubuntu with GCC (x64)
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build OCCT
|
|
uses: ./.github/actions/build-occt
|
|
with:
|
|
platform: linux
|
|
compiler: gcc
|
|
artifact-name: install-linux-gcc-x64
|
|
|
|
build-inspector-windows:
|
|
name: Build TInspector on Windows
|
|
needs: prepare-and-build-windows-x64
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build TInspector
|
|
uses: ./.github/actions/build-tinspector
|
|
with:
|
|
platform: windows
|
|
install-artifact-name: install-windows-x64
|
|
|
|
build-inspector-linux:
|
|
name: Build TInspector on Linux
|
|
needs: prepare-and-build-linux-clang-x64
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build TInspector
|
|
uses: ./.github/actions/build-tinspector
|
|
with:
|
|
platform: linux
|
|
install-artifact-name: install-linux-clang-x64
|
|
|
|
build-csharp-windows:
|
|
name: Build CSharp Sample on Windows
|
|
needs: prepare-and-build-windows-x64
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build CSharp Sample
|
|
uses: ./.github/actions/build-sample-csharp
|
|
with:
|
|
platform: windows
|
|
install-artifact-name: install-windows-x64
|
|
|
|
build-mfc-windows:
|
|
name: Build MFC Sample on Windows
|
|
needs: prepare-and-build-windows-x64
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build MFC Sample
|
|
uses: ./.github/actions/build-sample-mfc
|
|
with:
|
|
platform: windows
|
|
install-artifact-name: install-windows-x64
|
|
|
|
build-qt-windows:
|
|
name: Build Qt Sample on Windows
|
|
needs: prepare-and-build-windows-x64
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build Qt Sample
|
|
uses: ./.github/actions/build-sample-qt
|
|
with:
|
|
platform: windows
|
|
install-artifact-name: install-windows-x64
|
|
|
|
build-qt-linux:
|
|
name: Build Qt Sample on Linux
|
|
needs: prepare-and-build-linux-clang-x64
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Build Qt Sample
|
|
uses: ./.github/actions/build-sample-qt
|
|
with:
|
|
platform: linux
|
|
install-artifact-name: install-linux-clang-x64
|
|
|
|
test-windows-x64:
|
|
name: Test on Windows (x64)
|
|
runs-on: windows-2022
|
|
needs: prepare-and-build-windows-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run tests
|
|
uses: ./.github/actions/run-tests
|
|
with:
|
|
platform: windows
|
|
compiler: msvc
|
|
install-artifact-name: install-windows-x64
|
|
test-directory-name: windows-x64
|
|
test-script: .github/actions/testgrid/testwindows.tcl
|
|
|
|
retest-windows-x64:
|
|
name: Regression Test on Windows (x64)
|
|
runs-on: windows-2022
|
|
needs: test-windows-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run retest
|
|
uses: ./.github/actions/retest-failures
|
|
with:
|
|
platform: windows
|
|
compiler: msvc
|
|
install-artifact-name: install-windows-x64
|
|
results-artifact-name: results-windows-x64
|
|
test-directory-name: windows-x64
|
|
|
|
test-windows-clang-x64:
|
|
name: Test on Windows with Clang (x64)
|
|
runs-on: windows-2022
|
|
needs: prepare-and-build-windows-clang-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run tests
|
|
uses: ./.github/actions/run-tests
|
|
with:
|
|
platform: windows
|
|
compiler: clang
|
|
install-artifact-name: install-windows-clang-x64
|
|
test-directory-name: windows-clang-x64
|
|
test-script: .github/actions/testgrid/testwindowsclang.tcl
|
|
|
|
retest-windows-clang-x64:
|
|
name: Regression Test on Windows with Clang (x64)
|
|
runs-on: windows-2022
|
|
needs: test-windows-clang-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run retest
|
|
uses: ./.github/actions/retest-failures
|
|
with:
|
|
platform: windows
|
|
compiler: clang
|
|
install-artifact-name: install-windows-clang-x64
|
|
results-artifact-name: results-windows-clang-x64
|
|
test-directory-name: windows-clang-x64
|
|
|
|
test-macos-x64:
|
|
name: Test on macOS (x64)
|
|
runs-on: macos-15
|
|
needs: prepare-and-build-macos-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run tests
|
|
uses: ./.github/actions/run-tests
|
|
with:
|
|
platform: macos
|
|
compiler: clang
|
|
install-artifact-name: install-macos-x64
|
|
test-directory-name: macos-x64
|
|
test-script: .github/actions/testgrid/testmacos.tcl
|
|
|
|
retest-macos-x64:
|
|
name: Regression Test on macOS (x64)
|
|
runs-on: macos-15
|
|
needs: test-macos-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run retest
|
|
uses: ./.github/actions/retest-failures
|
|
with:
|
|
platform: macos
|
|
compiler: clang
|
|
install-artifact-name: install-macos-x64
|
|
results-artifact-name: results-macos-x64
|
|
test-directory-name: macos-x64
|
|
|
|
test-macos-gcc-x64:
|
|
name: Test on macOS with GCC (x64)
|
|
runs-on: macos-15
|
|
needs: prepare-and-build-macos-gcc-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run tests
|
|
uses: ./.github/actions/run-tests
|
|
with:
|
|
platform: macos
|
|
compiler: gcc
|
|
install-artifact-name: install-macos-gcc-x64
|
|
test-directory-name: macos-gcc-x64
|
|
test-script: .github/actions/testgrid/testmacosgcc.tcl
|
|
|
|
retest-macos-gcc-x64:
|
|
name: Regression Test on macOS with GCC (x64)
|
|
runs-on: macos-15
|
|
needs: test-macos-gcc-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run retest
|
|
uses: ./.github/actions/retest-failures
|
|
with:
|
|
platform: macos
|
|
compiler: gcc
|
|
install-artifact-name: install-macos-gcc-x64
|
|
results-artifact-name: results-macos-gcc-x64
|
|
test-directory-name: macos-gcc-x64
|
|
|
|
test-linux-clang-x64:
|
|
name: Test on Linux with Clang (x64)
|
|
runs-on: ubuntu-24.04
|
|
needs: prepare-and-build-linux-clang-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run tests
|
|
uses: ./.github/actions/run-tests
|
|
with:
|
|
platform: linux
|
|
compiler: clang
|
|
install-artifact-name: install-linux-clang-x64
|
|
test-directory-name: linux-clang-x64
|
|
test-script: .github/actions/testgrid/testlinuxclang.tcl
|
|
|
|
retest-linux-clang-x64:
|
|
name: Regression Test on Linux with Clang (x64)
|
|
runs-on: ubuntu-24.04
|
|
needs: test-linux-clang-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run retest
|
|
uses: ./.github/actions/retest-failures
|
|
with:
|
|
platform: linux
|
|
compiler: clang
|
|
install-artifact-name: install-linux-clang-x64
|
|
results-artifact-name: results-linux-clang-x64
|
|
test-directory-name: linux-clang-x64
|
|
|
|
test-linux-gcc-x64:
|
|
name: Test on Linux with GCC (x64)
|
|
runs-on: ubuntu-24.04
|
|
needs: prepare-and-build-linux-gcc-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run tests
|
|
uses: ./.github/actions/run-tests
|
|
with:
|
|
platform: linux
|
|
compiler: gcc
|
|
install-artifact-name: install-linux-gcc-x64
|
|
test-directory-name: linux-gcc-x64
|
|
test-script: .github/actions/testgrid/testlinuxgcc.tcl
|
|
|
|
retest-linux-gcc-x64:
|
|
name: Regression Test on Linux with GCC (x64)
|
|
runs-on: ubuntu-24.04
|
|
needs: test-linux-gcc-x64
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run retest
|
|
uses: ./.github/actions/retest-failures
|
|
with:
|
|
platform: linux
|
|
compiler: gcc
|
|
install-artifact-name: install-linux-gcc-x64
|
|
results-artifact-name: results-linux-gcc-x64
|
|
test-directory-name: linux-gcc-x64
|
|
|
|
run-gtest-windows-x64:
|
|
name: Run GTest on Windows with MSVC (x64)
|
|
needs: prepare-and-build-windows-x64
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run GTests
|
|
uses: ./.github/actions/run-gtest
|
|
with:
|
|
platform: windows
|
|
compiler: msvc
|
|
install-artifact-name: install-windows-x64
|
|
artifact-suffix: x64
|
|
|
|
run-gtest-windows-clang-x64:
|
|
name: Run GTest on Windows with Clang (x64)
|
|
needs: prepare-and-build-windows-clang-x64
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run GTests
|
|
uses: ./.github/actions/run-gtest
|
|
with:
|
|
platform: windows
|
|
compiler: clang
|
|
install-artifact-name: install-windows-clang-x64
|
|
artifact-suffix: x64
|
|
|
|
run-gtest-macos-x64:
|
|
name: Run GTest on macOS with Clang (x64)
|
|
needs: prepare-and-build-macos-x64
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run GTests
|
|
uses: ./.github/actions/run-gtest
|
|
with:
|
|
platform: macos
|
|
compiler: clang
|
|
install-artifact-name: install-macos-x64
|
|
artifact-suffix: x64
|
|
|
|
run-gtest-macos-gcc-x64:
|
|
name: Run GTest on macOS with GCC (x64)
|
|
needs: prepare-and-build-macos-gcc-x64
|
|
runs-on: macos-15
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run GTests
|
|
uses: ./.github/actions/run-gtest
|
|
with:
|
|
platform: macos
|
|
compiler: gcc
|
|
install-artifact-name: install-macos-gcc-x64
|
|
artifact-suffix: x64
|
|
|
|
run-gtest-linux-clang-x64:
|
|
name: Run GTest on Linux with Clang (x64)
|
|
needs: prepare-and-build-linux-clang-x64
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run GTests
|
|
uses: ./.github/actions/run-gtest
|
|
with:
|
|
platform: linux
|
|
compiler: clang
|
|
install-artifact-name: install-linux-clang-x64
|
|
artifact-suffix: x64
|
|
|
|
run-gtest-linux-gcc-x64:
|
|
name: Run GTest on Linux with GCC (x64)
|
|
needs: prepare-and-build-linux-gcc-x64
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Run GTests
|
|
uses: ./.github/actions/run-gtest
|
|
with:
|
|
platform: linux
|
|
compiler: gcc
|
|
install-artifact-name: install-linux-gcc-x64
|
|
artifact-suffix: x64
|
|
|
|
test-summary:
|
|
name: 'Summarize Test Results'
|
|
runs-on: ubuntu-24.04
|
|
if: ${{ !cancelled() && github.event_name == 'pull_request' }}
|
|
needs: [retest-windows-x64, retest-windows-clang-x64, retest-macos-x64, retest-macos-gcc-x64, retest-linux-clang-x64, retest-linux-gcc-x64]
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4.1.7
|
|
|
|
- name: Generate Test Summary
|
|
uses: ./.github/actions/test-summary
|