Adhere to latest core renderer upgrade #422
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: ExamplePlugins | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| env: | |
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
| BUILD_TYPE: Release | |
| USERNAME: ManiVaultStudio | |
| FEED_URL: https://nuget.pkg.github.com/ManiVaultStudio/index.json | |
| VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/ManiVaultStudio/index.json,readwrite" | |
| # for matrix check https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners | |
| jobs: | |
| prepare_matrix: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.matrix_setup.outputs.matrix }} | |
| steps: | |
| - name: Get matrix from file | |
| id: matrix_setup | |
| uses: ManiVaultStudio/github-actions/matrix_setup@main | |
| cross-platform-build: | |
| name: Cross platform build | |
| needs: prepare_matrix | |
| # The CMake configure and build commands are platform agnostic and should work equally | |
| # well on Windows or Mac. You can convert this to a matrix build if you need | |
| # cross-platform coverage. | |
| # See: https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| include: ${{ fromJson(needs.prepare_matrix.outputs.matrix) }} | |
| steps: | |
| - name: Checkout the source | |
| if: github.event_name != 'pull_request' | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Checkout the source - pull request | |
| if: github.event_name == 'pull_request' | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| - name: Select Xcode for Mac only | |
| if: startsWith(runner.os, 'macOS') | |
| run: | | |
| sudo xcode-select -switch /Applications/Xcode_${{matrix.build-xcode-version}}.app | |
| - name: Setup python version | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Start ssh key agent | |
| uses: webfactory/ssh-agent@v0.9.0 | |
| with: | |
| ssh-private-key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }} | |
| - name: Install SSH deploy key for rulessupport | |
| uses: shimataro/ssh-key-action@v2 | |
| with: | |
| key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }} | |
| known_hosts: github.com AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== | |
| # Install vcpkg | |
| - name: Clone vcpkg | |
| run: | | |
| cd ${{ github.workspace }} | |
| git clone --branch 2025.02.14 --single-branch https://github.com/microsoft/vcpkg.git | |
| # Bootstrap vcpkg | |
| - name: Bootstrap vcpkg | |
| if: startsWith(matrix.os, 'windows') | |
| shell: pwsh | |
| run: | | |
| ${{ github.workspace }}\vcpkg\bootstrap-vcpkg.bat | |
| echo "VCPKG_ROOT=${{ github.workspace }}\vcpkg" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| echo "VCPKG_EXE=${{ github.workspace }}\vcpkg\vcpkg.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| echo "VCPKG_LIBRARY_LINKAGE=dynamic" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| - name: Bootstrap vcpkg | |
| if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos') | |
| shell: bash | |
| run: | | |
| ${{ github.workspace }}/vcpkg/bootstrap-vcpkg.sh | |
| echo "VCPKG_ROOT=${{ github.workspace }}/vcpkg" >> $GITHUB_ENV | |
| echo "VCPKG_EXE=${{ github.workspace }}/vcpkg/vcpkg" >> $GITHUB_ENV | |
| echo "VCPKG_LIBRARY_LINKAGE=dynamic" >> $GITHUB_ENV | |
| - name: NuGet dependencies (Linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| shell: bash | |
| run: | | |
| sudo apt update && sudo apt install -y mono-complete | |
| - name: NuGet dependencies (MacOS) | |
| if: startsWith(matrix.os, 'macos') && !endsWith(matrix.os, '13') | |
| shell: bash | |
| run: | | |
| brew update && brew upgrade | |
| brew install mono | |
| # Use cached vcpkg packages if possible | |
| - name: Add NuGet sources | |
| if: startsWith(matrix.os, 'windows') | |
| shell: pwsh | |
| run: | | |
| .$(${{ env.VCPKG_EXE }} fetch nuget) ` | |
| sources add ` | |
| -Source "${{ env.FEED_URL }}" ` | |
| -StorePasswordInClearText ` | |
| -Name GitHubPackages ` | |
| -UserName "${{ env.USERNAME }}" ` | |
| -Password "${{ secrets.GH_VCPKG_PACKAGES }}" | |
| .$(${{ env.VCPKG_EXE }} fetch nuget) ` | |
| setapikey "${{ secrets.GH_VCPKG_PACKAGES }}" ` | |
| -Source "${{ env.FEED_URL }}" | |
| - name: Add NuGet sources | |
| if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos') | |
| shell: bash | |
| run: | | |
| mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ | |
| sources add \ | |
| -Source "${{ env.FEED_URL }}" \ | |
| -StorePasswordInClearText \ | |
| -Name GitHubPackages \ | |
| -UserName "${{ env.USERNAME }}" \ | |
| -Password "${{ secrets.GH_VCPKG_PACKAGES }}" | |
| mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ | |
| setapikey "${{ secrets.GH_VCPKG_PACKAGES }}" \ | |
| -Source "${{ env.FEED_URL }}" | |
| # Install vcpkg dependencies | |
| - name: Install vcpkg dependencies | |
| if: startsWith(matrix.os, 'windows') | |
| shell: pwsh | |
| run: | | |
| cd ${{ github.workspace }} | |
| ${{ env.VCPKG_EXE }} install --triplet x64-windows | |
| - name: Install vcpkg dependencies | |
| if: startsWith(matrix.os, 'ubuntu') | |
| shell: bash | |
| run: | | |
| cd ${{ github.workspace }} | |
| ${{ env.VCPKG_EXE }} install --triplet x64-linux-dynamic | |
| - name: Install vcpkg dependencies | |
| if: startsWith(matrix.os, 'macos') | |
| shell: bash | |
| run: | | |
| cd ${{ github.workspace }} | |
| ${{ env.VCPKG_EXE }} install --triplet x64-osx-dynamic | |
| # Build the package | |
| - name: Windows build | |
| if: startsWith(matrix.os, 'windows') | |
| uses: ManiVaultStudio/github-actions/conan_windows_build@main | |
| with: | |
| conan-visual-version: ${{matrix.build-cversion}} | |
| conan-visual-runtime: ${{matrix.build-runtime}} | |
| conan-build-type: ${{matrix.build-config}} | |
| conan-user: ${{secrets.LKEB_UPLOAD_USER}} | |
| conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}} | |
| conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}} | |
| rs_ssh_key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }} | |
| - name: Linux build | |
| if: startsWith(matrix.os, 'ubuntu') | |
| uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main | |
| with: | |
| conan-compiler: ${{matrix.build-compiler}} | |
| conan-compiler-version: ${{matrix.build-cversion}} | |
| conan-libcxx-version: ${{matrix.build-libcxx}} | |
| conan-build-type: ${{matrix.build-config}} | |
| conan-build-os: ${{matrix.build-os}} | |
| build-arch: ${{matrix.build-arch}} | |
| conan-user: ${{secrets.LKEB_UPLOAD_USER}} | |
| conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}} | |
| conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}} | |
| conan-cc: gcc-${{matrix.build-cversion}} | |
| conan-cxx: g++-${{matrix.build-cversion}} | |
| - name: Mac build | |
| if: startsWith(matrix.os, 'macos') | |
| uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main | |
| with: | |
| conan-compiler: ${{matrix.build-compiler}} | |
| conan-compiler-version: ${{matrix.build-cversion}} | |
| conan-libcxx-version: ${{matrix.build-libcxx}} | |
| conan-build-type: ${{matrix.build-config}} | |
| conan-build-os: ${{matrix.build-os}} | |
| build-arch: ${{matrix.build-arch}} | |
| conan-user: ${{secrets.LKEB_UPLOAD_USER}} | |
| conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}} | |
| conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}} |