hrntsm/Tunny

View on GitHub
.github/workflows/build-component.yml

Summary

Maintainability
Test Coverage
name: Build Grasshopper Plugin

on:
  push:
    branches: [develop]
  pull_request:
    branches: [main, develop]

jobs:
  build:
    strategy:
      matrix:
        configuration: [Debug]

    runs-on: windows-latest # For a list of available runner types, refer to

    env:
      Main_Solution_Name: Tunny.sln
      DE_Solution_Name: TT-DesignExplorer/DesignExplorer.sln
      Plugin_File_Name: Tunny

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          submodules: true

      - name: Download python & wheel zip
        shell: powershell
        run: |
          cd Tunny/Lib
          ./setup-python-lib.bat
          cd ../..

      - name: Setup MSBuild.exe
        uses: microsoft/setup-msbuild@v2

      - name: Setup NuGet
        uses: NuGet/setup-nuget@v2

      - name: Restore the Tunny application
        run: msbuild $env:Main_Solution_Name /t:Restore /p:Configuration=$env:Configuration
        env:
          Configuration: ${{ matrix.configuration }}

      - name: Build the Tunny application
        run: msbuild $env:Main_Solution_Name /p:Configuration=$env:Configuration
        env:
          Configuration: ${{ matrix.configuration }}

      - name: Restore the design explorer application
        run: msbuild $env:DE_Solution_Name /t:Restore /p:Configuration=$env:Configuration
        env:
          Configuration: ${{ matrix.configuration }}

      - name: Build the design explorer application
        run: msbuild $env:DE_Solution_Name /p:Configuration=$env:Configuration
        env:
          Configuration: ${{ matrix.configuration }}

      - name: Copy items to /Release dir
        shell: powershell
        run: |
          cp ./Examples ./Release/Examples -recurse
          cp ./LICENSE ./Release/LICENSE.txt
          cp ./PYTHON_PACKAGE_LICENSES ./Release/PYTHON_PACKAGE_LICENSES.txt
          cp ./Tunny/bin/Debug/net48 ./Release/Tunny -recurse
          cp ./TT-DesignExplorer/server/bin/Debug/net48/TT-DesignExplorer.zip ./Release/Tunny/Lib/TT-DesignExplorer.zip
          cp ./Examples ./Release/Tunny/Examples -recurse

      - name: Upload release build of plugin as artefact
        uses: actions/upload-artifact@v4
        with:
          name: Tunny
          path: |
            ./Release
          retention-days: 1
          compression-level: 9