9393 *.rpm
9494 *OpenStudio*x86_64.tar.gz
9595 cpack_generators : " RPM;TGZ"
96- max_jobs : 2
97- exclude_regex : " ^BCLFixture.RemoteBCLMetaSearchTest$"
96+ max_jobs : 4
97+ exclude_regex : " ^( BCLFixture.RemoteBCLMetaSearchTest|BCLFixture.BCLMeasure) $"
9898 - platform : ubuntu-2204-x64
9999 pretty : Ubuntu 22.04 x64
100100 os : ubuntu-22.04
@@ -107,8 +107,8 @@ jobs:
107107 *.deb
108108 *OpenStudio*x86_64.tar.gz
109109 cpack_generators : " DEB;TGZ"
110- max_jobs : 2
111- exclude_regex : " ^ModelFixture.PythonPluginInstance_NotPYFile$"
110+ max_jobs : 3
111+ exclude_regex : " ^( ModelFixture.PythonPluginInstance_NotPYFile|BCLFixture.BCLMeasure) $"
112112 - platform : ubuntu-2404-x64
113113 pretty : Ubuntu 24.04 x64
114114 os : ubuntu-24.04
@@ -121,8 +121,8 @@ jobs:
121121 *.deb
122122 *OpenStudio*x86_64.tar.gz
123123 cpack_generators : " DEB;TGZ"
124- max_jobs : 2
125- exclude_regex : ${{ '""' }}
124+ max_jobs : 4
125+ exclude_regex : " ^BCLFixture.BCLMeasure$ "
126126 - platform : ubuntu-2204-arm64
127127 pretty : Ubuntu 22.04 ARM64
128128 os : ubuntu-22.04-arm
@@ -135,8 +135,8 @@ jobs:
135135 *.deb
136136 *OpenStudio*arm64.tar.gz
137137 cpack_generators : " DEB;TGZ"
138- max_jobs : 2
139- exclude_regex : " ^(GeometryFixture.Plane_RayIntersection|ISOModelFixture.SimModel|SqlFileFixture.AnnualTotalCosts|OpenStudioCLI.*test_measure_manager)$"
138+ max_jobs : 3
139+ exclude_regex : " ^(GeometryFixture.Plane_RayIntersection|ISOModelFixture.SimModel|SqlFileFixture.AnnualTotalCosts|OpenStudioCLI.*test_measure_manager|BCLFixture.BCLMeasure )$"
140140 - platform : ubuntu-2404-arm64
141141 pretty : Ubuntu 24.04 ARM64
142142 os : ubuntu-24.04-arm
@@ -149,8 +149,8 @@ jobs:
149149 *.deb
150150 *OpenStudio*arm64.tar.gz
151151 cpack_generators : " DEB;TGZ"
152- max_jobs : 2
153- exclude_regex : " ^(GeometryFixture.Plane_RayIntersection|ISOModelFixture.SimModel|SqlFileFixture.AnnualTotalCosts|OpenStudioCLI.*test_measure_manager)$"
152+ max_jobs : 4
153+ exclude_regex : " ^(GeometryFixture.Plane_RayIntersection|ISOModelFixture.SimModel|SqlFileFixture.AnnualTotalCosts|OpenStudioCLI.*test_measure_manager|BCLFixture.BCLMeasure )$"
154154 defaults :
155155 run :
156156 shell : bash
@@ -163,8 +163,16 @@ jobs:
163163 contents : write
164164
165165 steps :
166- - name : Verify space
166+ - name : Enable Swap and Verify space
167167 run : |
168+ echo "Enabling Swap..."
169+ # Create and enable 8GB swap file to prevent OOM kills
170+ dd if=/dev/zero of=/mnt/swapfile_extra bs=1M count=8192 status=progress
171+ chmod 600 /mnt/swapfile_extra
172+ mkswap /mnt/swapfile_extra
173+ swapon /mnt/swapfile_extra
174+
175+ echo
168176 echo "Memory and swap:"
169177 # Check if free exists before running it, or ignore failure
170178 if command -v free >/dev/null 2>&1; then
@@ -283,7 +291,11 @@ jobs:
283291
284292 - name : Install CA Certificates
285293 if : startsWith(matrix.platform, 'ubuntu')
286- run : apt-get update && apt-get install -y ca-certificates
294+ run : |
295+ apt-get update || true
296+ apt-get install -y ca-certificates gnupg wget
297+ wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
298+ apt-get update
287299
288300 - name : Conan install
289301 run : |
@@ -328,6 +340,7 @@ jobs:
328340 -DPYTHON_VERSION:STRING=${{ env.PYTHON_REQUIRED_VERSION }} \
329341 -DSYSTEM_RUBY_EXECUTABLE="$SYSTEM_RUBY_PATH" \
330342 -DCMAKE_INSTALL_RPATH='$ORIGIN;$ORIGIN/../lib' \
343+ -DCMAKE_JOB_POOL_LINK:STRING=console \
331344 "$GITHUB_WORKSPACE"
332345
333346 - name : Build with Ninja
@@ -452,7 +465,7 @@ jobs:
452465 run : |
453466 set -euo pipefail
454467 . ./conanbuild.sh
455- cmake --build . --target package
468+ cpack -C ${{ env.BUILD_TYPE }}
456469
457470 - name : Cleanup intermediate files
458471 if : always()
@@ -538,7 +551,7 @@ jobs:
538551 if : inputs.skip_docker_trigger != 'true' && github.event.inputs.skip_docker_trigger != 'true'
539552 working-directory : installers
540553 env :
541- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
554+ GH_TOKEN : ${{ secrets.DOCKER_OPENSTUDIO_PAT }}
542555 BRANCH_NAME : ${{ github.ref_name }}
543556 S3_PREFIX : ${{ github.ref_type == 'tag' && format('releases/{0}', github.ref_name) || format('{0}', github.ref_name) }}
544557 run : |
@@ -612,13 +625,14 @@ jobs:
612625 name : Build Packages for ${{ matrix.pretty }}
613626 if : " !inputs.jobs || contains(inputs.jobs, 'macos-build')"
614627 runs-on : ${{ matrix.os }}
628+ timeout-minutes : 720
615629 continue-on-error : ${{ matrix.allow_failure }}
616630 strategy :
617631 fail-fast : false
618632 matrix :
619- macos_dev_target : [12.1, 13.0]
633+ macos_dev_target : [" 12.1", " 13.0" ]
620634 include :
621- - macos_dev_target : 12.1
635+ - macos_dev_target : " 12.1"
622636 platform : macos-x64
623637 pretty : " macOS x64"
624638 os : macos-15-intel
@@ -628,9 +642,9 @@ jobs:
628642 python-arch : x64
629643 dmg_glob : " *.dmg"
630644 tar_glob : " *OpenStudio*x86_64.tar.gz"
631- exclude_regex : ${{ '""' }}
632- max_jobs : 2
633- - macos_dev_target : 13.0
645+ exclude_regex : " ^BCLFixture.BCLMeasure$ "
646+ max_jobs : 3
647+ - macos_dev_target : " 13.0"
634648 platform : macos-arm64
635649 pretty : " macOS ARM64"
636650 os : macos-15
@@ -640,8 +654,8 @@ jobs:
640654 python-arch : arm64
641655 dmg_glob : " *.dmg"
642656 tar_glob : " *OpenStudio*arm64.tar.gz"
643- exclude_regex : " ^(GeometryFixture.Plane_RayIntersection|ISOModelFixture.SimModel)$"
644- max_jobs : 2
657+ exclude_regex : " ^(GeometryFixture.Plane_RayIntersection|ISOModelFixture.SimModel|BCLFixture.BCLMeasure )$"
658+ max_jobs : 3
645659 env :
646660 MAX_BUILD_THREADS : ${{ matrix.max_jobs }}
647661 CTEST_PARALLEL_LEVEL : ${{ matrix.max_jobs }}
@@ -657,6 +671,20 @@ jobs:
657671 path : ${{ env.OPENSTUDIO_SOURCE }}
658672 fetch-depth : 1
659673
674+ - name : Verify space
675+ shell : bash
676+ run : |
677+ echo "Memory and swap:"
678+ if command -v vm_stat >/dev/null 2>&1; then
679+ vm_stat
680+ fi
681+ echo
682+ sysctl vm.swapusage || true
683+ echo
684+ echo "Available storage:"
685+ df -h . || true
686+ echo
687+
660688 - name : Git safe directory
661689 working-directory : ${{ env.OPENSTUDIO_SOURCE }}
662690 run : git config --global --add safe.directory '*'
@@ -769,6 +797,7 @@ jobs:
769797 --output-folder=../${{ env.OPENSTUDIO_BUILD }} \
770798 --build=missing \
771799 -c tools.cmake.cmaketoolchain:generator=Ninja \
800+ -c tools.build:cxxflags='["-Wno-enum-constexpr-conversion", "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"]' \
772801 -s compiler.cppstd=20 \
773802 -s build_type=${{ env.BUILD_TYPE }} \
774803 -s os.version=${{ matrix.macos_dev_target }} \
@@ -818,6 +847,7 @@ jobs:
818847 "${CCACHE_ARGS[@]}" \
819848 "${SIGNING_ARGS[@]}" \
820849 -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake \
850+ -DCMAKE_CXX_FLAGS="-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -Wno-enum-constexpr-conversion" \
821851 -DENABLE_COVERAGE:BOOL=OFF \
822852 -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${{ matrix.macos_dev_target }} \
823853 -DCMAKE_BUILD_TYPE:STRING=${{ env.BUILD_TYPE }} \
@@ -829,6 +859,7 @@ jobs:
829859 -DCMAKE_INSTALL_RPATH="@loader_path;@executable_path;@loader_path/../lib" \
830860 -DPYTHON_VERSION:STRING=${{ env.PYTHON_REQUIRED_VERSION }} \
831861 -DPython_ROOT_DIR:PATH="$(dirname $(dirname $SYSTEM_PYTHON_PATH))" \
862+ -DCMAKE_JOB_POOL_LINK:STRING=console \
832863 ../${{ env.OPENSTUDIO_SOURCE }}
833864
834865 - name : Build with Ninja
@@ -939,7 +970,7 @@ jobs:
939970 run : |
940971 set -euo pipefail
941972 . ./conanbuild.sh
942- ninja -j ${{ matrix.max_jobs }} package
973+ cpack -C ${{ env.BUILD_TYPE }}
943974
944975 - name : Cleanup intermediate files
945976 if : always()
@@ -1158,6 +1189,7 @@ jobs:
11581189 name : Build ${{ matrix.pretty }}
11591190 if : " !inputs.jobs || contains(inputs.jobs, 'windows-build')"
11601191 runs-on : ${{ matrix.os }}
1192+ timeout-minutes : 720
11611193 strategy :
11621194 fail-fast : false
11631195 matrix :
@@ -1170,8 +1202,8 @@ jobs:
11701202 arch : x86_64
11711203 python-arch : x64
11721204 allow_failure : false
1173- max_jobs : 3
1174- exclude_regex : " ^(RubyTest-Date_Test-ymd_constructor)$"
1205+ max_jobs : 4
1206+ exclude_regex : " ^(RubyTest-Date_Test-ymd_constructor|BCLFixture.BCLMeasure )$"
11751207 defaults :
11761208 run :
11771209 shell : pwsh
@@ -1190,6 +1222,11 @@ jobs:
11901222 path : ${{ env.OPENSTUDIO_SOURCE }}
11911223 fetch-depth : 1
11921224
1225+ - name : Verify space
1226+ run : |
1227+ Get-PSDrive C | Select-Object Used,Free
1228+ Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize,FreePhysicalMemory,TotalVirtualMemorySize,FreeVirtualMemory
1229+
11931230 - name : Git safe directory
11941231 working-directory : ${{ env.OPENSTUDIO_SOURCE }}
11951232 run : git config --global --add safe.directory '*'
@@ -1350,7 +1387,7 @@ jobs:
13501387 working-directory : ${{ env.OPENSTUDIO_BUILD }}
13511388 run : |
13521389 $sccacheExe = (Get-Command sccache).Source
1353- & $env:ComSpec /c "call conanbuild.bat && cmake -G Ninja -DCMAKE_C_COMPILER_LAUNCHER=`"$sccacheExe`" -DCMAKE_CXX_COMPILER_LAUNCHER=`"$sccacheExe`" -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE:STRING=${{ env.BUILD_TYPE }} -DBUILD_TESTING:BOOL=ON -DCPACK_GENERATOR:STRING=`"NSIS;TGZ`" -DBUILD_PYTHON_BINDINGS:BOOL=ON -DBUILD_PYTHON_PIP_PACKAGE:BOOL=OFF -DPython_EXECUTABLE:FILEPATH=`"$env:SYSTEM_PYTHON_PATH`" -DPYTHON_VERSION:STRING=${{ env.PYTHON_REQUIRED_VERSION }} -DSYSTEM_RUBY_EXECUTABLE=`"%SYSTEM_RUBY_PATH%`" `"../${{ env.OPENSTUDIO_SOURCE }}"`"
1390+ & $env:ComSpec /c "call conanbuild.bat && cmake -G Ninja -DCMAKE_C_COMPILER_LAUNCHER=`"$sccacheExe`" -DCMAKE_CXX_COMPILER_LAUNCHER=`"$sccacheExe`" -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE:STRING=${{ env.BUILD_TYPE }} -DBUILD_TESTING:BOOL=ON -DCPACK_GENERATOR:STRING=`"NSIS;TGZ`" -DBUILD_PYTHON_BINDINGS:BOOL=ON -DBUILD_PYTHON_PIP_PACKAGE:BOOL=OFF -DPython_EXECUTABLE:FILEPATH=`"$env:SYSTEM_PYTHON_PATH`" -DPYTHON_VERSION:STRING=${{ env.PYTHON_REQUIRED_VERSION }} -DSYSTEM_RUBY_EXECUTABLE=`"%SYSTEM_RUBY_PATH%`" -DCMAKE_JOB_POOL_LINK:STRING=console `"../${{ env.OPENSTUDIO_SOURCE }}"`"
13541391
13551392 - name : Build with Ninja
13561393 working-directory : ${{ env.OPENSTUDIO_BUILD }}
@@ -1557,7 +1594,7 @@ jobs:
15571594 if : ${{ success() && !cancelled() }}
15581595 working-directory : ${{ env.OPENSTUDIO_BUILD }}
15591596 run : |
1560- & $env:ComSpec /c "call conanbuild.bat && cmake --build . --target package --parallel ${{ matrix.max_jobs }}"
1597+ & $env:ComSpec /c "call conanbuild.bat && cpack -C ${{ env.BUILD_TYPE }}"
15611598
15621599 - name : Code sign installer
15631600 if : success() && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v') || inputs.publish_to_s3 == 'true' || github.event.inputs.publish_to_s3 == 'true')
0 commit comments