Improve description of statistical formulas #22254
Workflow file for this run
This file contains hidden or 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
| name: ResInsight Build With Cache | |
| on: | |
| push: | |
| pull_request: | |
| schedule: | |
| # Every day at 1am to make sure we have a build cache for the current date | |
| # build cache is | |
| - cron: '0 1 * * *' | |
| concurrency: | |
| group: build-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.config.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build_type: [Release] | |
| config: | |
| - { | |
| name: "Windows Latest MSVC", | |
| os: windows-2022, | |
| cc: "cl", | |
| cxx: "cl", | |
| build-python-module: true, | |
| execute-unit-tests: true, | |
| execute-pytests: true, | |
| unity-build: true, | |
| publish-to-pypi: false, | |
| vcpkg-bootstrap: bootstrap-vcpkg.bat, | |
| qt-version: 6.6.3, | |
| ri-unit-test-path: "ResInsight-tests", | |
| } | |
| - { | |
| name: "Windows_2022_qt_610", | |
| os: windows-2022, | |
| cc: "cl", | |
| cxx: "cl", | |
| build-python-module: false, | |
| execute-unit-tests: true, | |
| execute-pytests: false, | |
| unity-build: true, | |
| publish-to-pypi: false, | |
| vcpkg-bootstrap: bootstrap-vcpkg.bat, | |
| qt-version: 6.10.1, | |
| ri-unit-test-path: "ResInsight-tests", | |
| } | |
| - { | |
| name: "Ubuntu 24.04 gcc", | |
| os: ubuntu-24.04, | |
| cc: "gcc-14", | |
| cxx: "g++-14", | |
| build-python-module: true, | |
| execute-unit-tests: true, | |
| execute-pytests: true, | |
| unity-build: false, | |
| publish-to-pypi: true, | |
| vcpkg-bootstrap: bootstrap-vcpkg.sh, | |
| qt-version: 6.7.0, | |
| ri-unit-test-path: "ResInsight-tests", | |
| } | |
| - { | |
| name: "Ubuntu 24.04 clang-19", | |
| os: ubuntu-24.04, | |
| cc: "clang-19", | |
| cxx: "clang++-19", | |
| build-python-module: true, | |
| execute-unit-tests: true, | |
| execute-pytests: false, | |
| unity-build: false, | |
| publish-to-pypi: false, | |
| vcpkg-bootstrap: bootstrap-vcpkg.sh, | |
| qt-version: 6.7.0, | |
| ri-unit-test-path: "ResInsight-tests", | |
| } | |
| env: | |
| BUILD_TYPE: Release | |
| BUILDCACHE_DIR: ${{ github.workspace }}/buildcache_dir | |
| BUILDCACHE_ACCURACY: SLOPPY | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.11" | |
| - name: Display Python version | |
| run: python -c "import sys; print(sys.version)" | |
| - name: Get Python executable path | |
| shell: bash | |
| id: python-path | |
| run: echo "PYTHON_EXECUTABLE=$(python -c 'import sys; import pathlib; print (pathlib.PurePath(sys.executable).as_posix())')" >> $GITHUB_OUTPUT | |
| - name: Print Python path | |
| run: echo "${{ steps.python-path.outputs.PYTHON_EXECUTABLE }}" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r GrpcInterface/Python/build-requirements.txt | |
| - name: Use MSVC (Windows) | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Setup buildcache | |
| uses: CeetronSolutions/[email protected] | |
| - name: Get current time | |
| uses: josStorer/get-current-time@v2 | |
| id: current-time | |
| with: | |
| format: YYYY-MM-DD | |
| - name: Print time stamp | |
| run: echo "timestamp ${{ steps.current-time.outputs.formattedTime }}" | |
| - name: Cache Buildcache | |
| id: cache-buildcache | |
| uses: actions/cache@v5 | |
| with: | |
| path: ${{ env.BUILDCACHE_DIR }} | |
| key: ${{ matrix.config.os }}-${{ matrix.config.cc }}-${{ matrix.config.qt-version }}-cache-v03-${{ steps.current-time.outputs.formattedTime }} | |
| - name: Create Folder for buildcache | |
| run: New-Item ${{ env.BUILDCACHE_DIR }} -ItemType "directory" -Force | |
| shell: pwsh | |
| - name: Set apt mirror | |
| # see https://github.com/actions/runner-images/issues/7048 | |
| if: contains( matrix.config.os, 'ubuntu') | |
| run: | | |
| # make sure there is a `\t` between URL and `priority:*` attributes | |
| printf 'http://azure.archive.ubuntu.com/ubuntu priority:1\n' | sudo tee /etc/apt/mirrors.txt | |
| curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt | |
| sudo sed -i 's/http:\/\/azure.archive.ubuntu.com\/ubuntu\//mirror+file:\/etc\/apt\/mirrors.txt/' /etc/apt/sources.list | |
| - name: Install Linux dependencies | |
| if: contains( matrix.config.os, 'ubuntu') | |
| run: | | |
| sudo apt-get update --option="APT::Acquire::Retries=3" | |
| sudo apt-get install --option="APT::Acquire::Retries=3" libxkbcommon-x11-0 libgl1-mesa-dev mesa-common-dev libglfw3-dev libglu1-mesa-dev libhdf5-dev | |
| - name: Install clang-19 | |
| if: contains( matrix.config.cc, 'clang') | |
| run: | | |
| set -e | |
| # Add LLVM repository | |
| wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - | |
| echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" | sudo tee /etc/apt/sources.list.d/llvm-19.list | |
| echo "deb-src http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" | sudo tee -a /etc/apt/sources.list.d/llvm-19.list | |
| # Update package list and install clang-19 | |
| sudo apt-get update --option="APT::Acquire::Retries=3" | |
| sudo apt-get install --option="APT::Acquire::Retries=3" -y \ | |
| clang-19 \ | |
| lldb-19 \ | |
| lld-19 \ | |
| clangd-19 \ | |
| clang-tidy-19 \ | |
| clang-format-19 \ | |
| clang-tools-19 \ | |
| libc++-19-dev \ | |
| libc++abi-19-dev \ | |
| libomp-19-dev | |
| # Verify installation | |
| clang-19 --version | |
| clang++-19 --version | |
| echo "clang-19 installation completed successfully" | |
| - name: Install gcc-14 | |
| if: contains( matrix.config.cc, 'gcc-14') | |
| run: | | |
| sudo apt-get install --option="APT::Acquire::Retries=3" gcc-14 g++-14 | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: ${{ matrix.config.qt-version }} | |
| dir: "${{ github.workspace }}/Qt/" | |
| cache: true | |
| setup-python: false | |
| modules: "qtnetworkauth" | |
| - name: vcpkg bootstrap | |
| run: | | |
| ThirdParty/vcpkg/${{ matrix.config.vcpkg-bootstrap }} | |
| - name: Print CMake version | |
| shell: bash | |
| run: | | |
| if [ "$RUNNER_OS" = "Windows" ]; then | |
| EXEC_PATH=$(where.exe cmake | head -n 1) | |
| else | |
| EXEC_PATH=$(which cmake) | |
| fi | |
| echo "Executable path: $EXEC_PATH" | |
| "$EXEC_PATH" --version | |
| - name: Check vcpkg secrets | |
| shell: bash | |
| run: | | |
| if [ -z "${{ secrets.AZURE_VCPKG_STORAGE_ACCOUNT }}" ]; then | |
| echo "Error: AZURE_VCPKG_STORAGE_ACCOUNT secret is not set" | |
| exit 1 | |
| fi | |
| if [ -z "${{ secrets.AZURE_VCPKG_SAS_TOKEN }}" ]; then | |
| echo "Error: AZURE_VCPKG_SAS_TOKEN secret is not set" | |
| exit 1 | |
| fi | |
| echo "All required vcpkg secrets are present" | |
| - name: Configure | |
| shell: bash | |
| env: | |
| VCPKG_FEATURE_FLAGS: "binarycaching" | |
| VCPKG_BINARY_SOURCES: "clear;x-azblob,https://${{ secrets.AZURE_VCPKG_STORAGE_ACCOUNT }}.blob.core.windows.net/vcpkg-binaries,${{ secrets.AZURE_VCPKG_SAS_TOKEN }},readwrite" | |
| CC: ${{ matrix.config.cc }} | |
| CXX: ${{ matrix.config.cxx }} | |
| run: > | |
| cmake -S . -B cmakebuild | |
| -DVCPKG_BUILD_TYPE=release | |
| -DCMAKE_INSTALL_PREFIX=cmakebuild/install | |
| -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} | |
| -DRESINSIGHT_QT5_BUNDLE_LIBRARIES=true | |
| -DRESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS=true | |
| -DRESINSIGHT_TREAT_WARNINGS_AS_ERRORS=true | |
| -DRESINSIGHT_ENABLE_PRECOMPILED_HEADERS=false | |
| -DRESINSIGHT_ENABLE_UNITY_BUILD=${{ matrix.config.unity-build }} | |
| -DRESINSIGHT_ENABLE_GRPC=${{ matrix.config.build-python-module }} | |
| -DRESINSIGHT_GRPC_PYTHON_EXECUTABLE=${{ steps.python-path.outputs.PYTHON_EXECUTABLE }} | |
| -DRESINSIGHT_GRPC_DOWNLOAD_PYTHON_MODULE=true | |
| -DRESINSIGHT_ENABLE_HDF5=false | |
| -DCMAKE_TOOLCHAIN_FILE=ThirdParty/vcpkg/scripts/buildsystems/vcpkg.cmake | |
| -G Ninja | |
| - name: Build | |
| run: | | |
| cmake --build cmakebuild --target install | |
| - name: Stats for buildcache | |
| run: buildcache -s | |
| - name: Run Unit Tests | |
| if: matrix.config.execute-unit-tests | |
| shell: bash | |
| run: | | |
| echo "Content of unit test folder " | |
| ls cmakebuild/${{ matrix.config.ri-unit-test-path }} | |
| cmakebuild/${{ matrix.config.ri-unit-test-path }} | |
| - name: (Python) Build Python module | |
| if: matrix.config.build-python-module | |
| shell: bash | |
| run: | | |
| ${{ steps.python-path.outputs.PYTHON_EXECUTABLE }} -m pip install build wheel | |
| cd GrpcInterface/Python | |
| ${{ steps.python-path.outputs.PYTHON_EXECUTABLE }} -m build | |
| - name: (Python) Check types using mypy | |
| if: matrix.config.build-python-module | |
| shell: bash | |
| run: | | |
| ${{ steps.python-path.outputs.PYTHON_EXECUTABLE }} -m pip install mypy types-protobuf | |
| cd GrpcInterface/Python/rips | |
| ${{ steps.python-path.outputs.PYTHON_EXECUTABLE }} -m mypy *.py generated/generated_classes.py | |
| - name: Run pytest | |
| if: matrix.config.execute-pytests | |
| env: | |
| RESINSIGHT_EXECUTABLE: ${{ runner.workspace }}/ResInsight/cmakebuild/ResInsight${{ runner.os == 'Windows' && '.exe' || '' }} | |
| run: | | |
| cd GrpcInterface/Python/rips | |
| ${{ steps.python-path.outputs.PYTHON_EXECUTABLE }} -m pytest --console | |
| - name: Upload python distribution folder | |
| if: matrix.config.publish-to-pypi | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: python-distribution | |
| path: GrpcInterface/Python/dist | |
| retention-days: 5 | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ResInsight-${{ matrix.config.name }} | |
| path: ${{ runner.workspace }}/ResInsight/cmakebuild/install | |
| retention-days: 5 | |
| pypi-publish: | |
| name: Upload release to PyPI | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/rips | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| # If this is a tagged release | |
| if: startsWith(github.ref, 'refs/tags') | |
| steps: | |
| - name: Download python distribution folder | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: python-distribution | |
| path: dist | |
| - name: Display structure of downloaded files | |
| run: ls -R | |
| - name: Publish Python package to pypi | |
| # https://docs.pypi.org/trusted-publishers/adding-a-publisher/ | |
| uses: pypa/gh-action-pypi-publish@release/v1 |