Create macOS arm installer #375
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 | |
| # Install Qt Installer Framework using aqtinstall | |
| python3 -m pip install aqtinstall | |
| python -m aqt install-tool -O "${{ github.workspace }}/Qt/" mac desktop tools_ifw | |
| # Add Qt IFW to PATH | |
| QT_IFW_DIR=$(find "${{ github.workspace }}/Qt/Tools/QtInstallerFramework" -name "bin" -type d | head -1) | |
| if [ -n "$QT_IFW_DIR" ]; then | |
| echo "$QT_IFW_DIR" >> $GITHUB_PATH | |
| fi | |
| echo MACOSX_DEPLOYMENT_TARGET=${{ matrix.MACOSX_DEPLOYMENT_TARGET }} >> $GITHUB_ENV | |
| elif [ "$RUNNER_OS" == "Windows" ]; then | |
| # Install Qt Installer Framework using aqtinstall | |
| python3 -m pip install aqtinstall | |
| python -m aqt install-tool -O "${{ github.workspace }}/Qt/" windows desktop tools_ifw | |
| # Add Qt IFW to PATH | |
| QT_IFW_DIR=$(find "${{ github.workspace }}/Qt/Tools/QtInstallerFramework" -name "bin" -type d | head -1) | |
| if [ -n "$QT_IFW_DIR" ]; then | |
| echo "$QT_IFW_DIR" >> $GITHUB_PATH | |
| 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: Configure CMake & build (Windows) | |
| working-directory: ./build | |
| if: runner.os == 'Windows' | |
| shell: cmd | |
| run: | | |
| 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 | |
| export MATRIX_ARCH=arm64 | |
| echo "MATRIX_ARCH=arm64" >> $GITHUB_ENV | |
| cmake -DCMAKE_OSX_ARCHITECTURES="arm64" \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.MACOSX_DEPLOYMENT_TARGET }}" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| ../ | |
| else | |
| export MATRIX_ARCH=x86_64 | |
| echo "MATRIX_ARCH=x86_64" >> $GITHUB_ENV | |
| cmake -DCMAKE_OSX_ARCHITECTURES="x86_64" \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.MACOSX_DEPLOYMENT_TARGET }}" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| ../ | |
| fi | |
| 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 }} | |