Add cleanup step for corrupted dependency files #344
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: Build_PAT | |
| on: | |
| pull_request: | |
| branches: | |
| - '*' | |
| push: | |
| branches: | |
| - '*' | |
| tags: | |
| - '*' | |
| jobs: | |
| pat_build: | |
| name: Build ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| continue-on-error: ${{ matrix.allow_failure }} | |
| strategy: | |
| # fail-fast: Default is true, switch to false to allow one platform to fail and still run others | |
| fail-fast: false | |
| matrix: | |
| name: [Ubuntu, macOS-Intel, macOS-ARM, Windows_2022] | |
| include: | |
| - name: Ubuntu | |
| os: ubuntu-22.04 | |
| node-version: 18 | |
| allow_failure: false | |
| - name: macOS-Intel | |
| os: macos-13 | |
| node-version: 18 | |
| allow_failure: false | |
| arch: x86_64 | |
| MACOSX_DEPLOYMENT_TARGET: 10.15 | |
| - name: macOS-ARM | |
| os: macos-14 | |
| node-version: 18 | |
| allow_failure: false | |
| arch: arm64 | |
| MACOSX_DEPLOYMENT_TARGET: 12.1 | |
| - name: Windows_2022 | |
| os: windows-2022 | |
| node-version: 18 | |
| allow_failure: false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install System dependencies | |
| shell: bash | |
| run: | | |
| set -x | |
| if [ "$RUNNER_OS" == "Linux" ]; then | |
| sudo apt update | |
| sudo apt install cmake | |
| elif [ "$RUNNER_OS" == "macOS" ]; then | |
| # Create and activate Python virtual environment | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| # Upgrade pip and install aqtinstall | |
| pip install --upgrade pip | |
| pip install aqtinstall | |
| # Verify installation | |
| pip show aqtinstall | |
| # Install Qt Installer Framework | |
| python -m aqt install-tool -O ${{ github.workspace }}/Qt/ mac desktop tools_ifw | |
| # Find the actual installed version directory and add to PATH | |
| QT_IFW_DIR=$(find ${{ github.workspace }}/Qt/Tools/QtInstallerFramework -maxdepth 1 -type d -name "*" | head -1) | |
| if [ -d "$QT_IFW_DIR" ]; then | |
| echo "Qt Installer Framework installed successfully at: $QT_IFW_DIR" | |
| echo "$QT_IFW_DIR/bin" >> $GITHUB_PATH | |
| else | |
| echo "Qt Installer Framework installation failed" | |
| exit 1 | |
| fi | |
| echo MACOSX_DEPLOYMENT_TARGET=${{ matrix.MACOSX_DEPLOYMENT_TARGET }} >> $GITHUB_ENV | |
| elif [ "$RUNNER_OS" == "Windows" ]; then | |
| # Create and activate Python virtual environment | |
| python3 -m venv venv | |
| source venv/Scripts/activate | |
| # Install aqtinstall (skip pip upgrade on Windows to avoid permission issues) | |
| pip install aqtinstall | |
| # Verify installation | |
| pip show aqtinstall | |
| # Install Qt Installer Framework | |
| python -m aqt install-tool -O ${{ github.workspace }}/Qt/ windows desktop tools_ifw | |
| # Find the actual installed version directory and add to PATH | |
| QT_IFW_DIR=$(find ${{ github.workspace }}/Qt/Tools/QtInstallerFramework -maxdepth 1 -type d -name "*" | head -1) | |
| if [ -d "$QT_IFW_DIR" ]; then | |
| echo "Qt Installer Framework installed successfully at: $QT_IFW_DIR" | |
| echo "$QT_IFW_DIR/bin" >> $GITHUB_PATH | |
| else | |
| echo "Qt Installer Framework installation failed" | |
| exit 1 | |
| fi | |
| #echo "Setting CMAKE_GENERATOR options equivalent to ='-G \"Visual Studio 16 2019\" -A x64'" | |
| #echo CMAKE_GENERATOR='Visual Studio 16 2019' >> $GITHUB_ENV | |
| #echo CMAKE_GENERATOR_PLATFORM=x64 >> $GITHUB_ENV | |
| # C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise | |
| # Command below no longer working and returning the version number. | |
| # MSVC_DIR=$(cmd.exe /c "vswhere -products * -requires Microsoft.Component.MSBuild -property installationPath -latest") | |
| MSVC_DIR="C:\Program Files\Microsoft Visual Studio\2022\Enterprise" | |
| echo "Latest is: $MSVC_DIR" | |
| echo "MSVC_DIR=$MSVC_DIR" >> $GITHUB_ENV | |
| # add folder containing vcvarsall.bat | |
| echo "$MSVC_DIR\VC\Auxiliary\Build" >> $GITHUB_PATH | |
| fi; | |
| N=$(nproc 2>/dev/null || sysctl -n hw.logicalcpu) | |
| echo "There are $N threads available" | |
| echo "N=$N" >> $GITHUB_ENV | |
| - name: Create Build Directory | |
| run: cmake -E make_directory ./build/ | |
| - name: Clean up potentially corrupted dependency files | |
| shell: bash | |
| run: | | |
| # Remove any existing OpenStudio-server files that might be corrupted | |
| find depend/ -name "OpenStudio-server-*" -type f -delete 2>/dev/null || true | |
| echo "Cleaned up any existing OpenStudio-server dependency files" | |
| - name: Configure CMake & build (Windows) | |
| working-directory: ./build | |
| if: runner.os == 'Windows' | |
| shell: cmd | |
| run: | | |
| echo "Using vcvarsall to initialize the development environment" | |
| call vcvarsall.bat x64 | |
| cmake -G "Visual Studio 17 2022" -A x64 .. | |
| cmake --build . --target package -j %N% --config Release | |
| - name: Configure CMake & build (Linux) | |
| working-directory: ./build | |
| if: runner.os == 'Linux' | |
| shell: bash | |
| run: | | |
| set -x | |
| cmake -DCMAKE_BUILD_TYPE=Release \ | |
| -DCPACK_BINARY_DEB=ON \ | |
| -DCPACK_BINARY_IFW=OFF \ | |
| -DCPACK_BINARY_TGZ=OFF \ | |
| -DCPACK_BINARY_TZ=OFF \ | |
| -DCPACK_BINARY_STGZ=OFF \ | |
| -DCPACK_BINARY_TBZ2=OFF \ | |
| ../ | |
| cmake --build . --target package -j $N | |
| - name: Configure CMake & build (macOS) | |
| working-directory: ./build | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| set -x | |
| if [ "${{ matrix.arch }}" = "arm64" ]; then | |
| CMAKE_OSX_ARCHITECTURES=arm64 | |
| cmake -DCMAKE_OSX_ARCHITECTURES="arm64" \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.MACOSX_DEPLOYMENT_TARGET }}" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| ../ | |
| else | |
| CMAKE_OSX_ARCHITECTURES=x86_64 | |
| cmake -DCMAKE_OSX_ARCHITECTURES="x86_64" \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.MACOSX_DEPLOYMENT_TARGET }}" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| ../ | |
| fi | |
| export CMAKE_OSX_ARCHITECTURES | |
| cmake --build . --target package -j $N | |
| - name: Save artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: PAT-Installer-${{ matrix.name }} | |
| path: ./build/ParametricAnalysisTool-* | |
| #name: OpenStudio-PAT-{{ matrix.name }}-${{ github.sha }} | |