diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..90d0ef0 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,43 @@ +name: Build + +on: + push: + branches: + - master + pull_request: + +jobs: + build: + runs-on: windows-latest + steps: + - name: Checkout TuneUp Repo + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + with: + path: TuneUp + - name: Checkout Dynamo Repo + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + with: + path: Dynamo + repository: DynamoDS/Dynamo + - name: Setup Nuget + uses: nuget/setup-nuget@a21f25cd3998bf370fde17e3f1b4c12c175172f9 # v2.0.0 + - name: Setup msbuild + uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 + - name: Install dependencies for Dynamo solution + run: | + nuget restore ${{ github.workspace }}\Dynamo\src\Dynamo.All.sln + nuget restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln + - name: Install dependencies for TuneUp solution + run: nuget restore ${{ github.workspace }}\TuneUp\TuneUp.sln + - name: Build Dynamo solution + run: msbuild ${{ github.workspace }}\Dynamo\src\Dynamo.All.sln + - name: Build TuneUp solution + run: msbuild ${{ github.workspace }}\TuneUp\TuneUp.sln + - name: Look for TuneUp.dll + run: | + Write-Output "***Locating TuneUp.dll!***" + if (Test-Path -Path "${{ github.workspace }}\TuneUp\TuneUp\bin\Debug") { + Write-Output "TuneUp.dll exists!" + } else { + Write-Error "TuneUp.dll was not found!" + } diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml deleted file mode 100644 index 07d9adf..0000000 --- a/.github/workflows/msbuild.yml +++ /dev/null @@ -1,40 +0,0 @@ -# Build TuneUp using latest VS and DotNET -name: TuneUp-Build -on: [push] -jobs: - build: - runs-on: windows-latest - steps: - - name: Checkout TuneUp Repo - uses: actions/checkout@v2 - with: - path: TuneUp - - name: Checkout Dynamo Repo - uses: actions/checkout@v2 - with: - path: Dynamo - repository: DynamoDS/Dynamo - ref: RC2.5.0_master - - name: Setup Nuget.exe to use on VM - uses: nuget/setup-nuget@v1 - - name: Nuget Restore in Dynamo solution - run: nuget restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln - - name: Nuget Restore in TuneUp solution - run: nuget restore $Env:GITHUB_WORKSPACE\TuneUp\TuneUp.sln - - name: Build Dynamo with MSBuild - run: | - echo "***Execute ls, and you should see two folders created***" - ls - echo "***Continue with the build, Good luck developer!***" - cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\" - .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln - - name: Build TuneUp with DotNET - run: | - echo "***Building TuneUp now following Dynamo build***" - cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\" - .\MSBuild.exe $Env:GITHUB_WORKSPACE\TuneUp\TuneUp.sln - # look for TuneUp - - name: Find TuneUp - run: | - cd "$Env:GITHUB_WORKSPACE\TuneUp\TuneUp\bin\Debug" - ls \ No newline at end of file diff --git a/README.md b/README.md index 04e562f..4d007e6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -![](https://github.com/DynamoDS/TuneUp/workflows/TuneUp-Build/badge.svg) - # TuneUp +[![Build](https://github.com/DynamoDS/TuneUp/actions/workflows/build.yml/badge.svg)](https://github.com/DynamoDS/TuneUp/actions/workflows/build.yml) + TuneUp is in `beta`. TuneUp is a view extension for analyzing the performance of Dynamo graphs. TuneUp allows you to see overall graph execution time, per-node execution time, and other helpful information about what's happening under the hood, e.g. nodes run in the current execution v.s. nodes run in the previous execution (which were skipped during the most recent graph run for optimization/ caching). @@ -10,22 +10,26 @@ Here is a short demo of how to utilize it as of now: ![TuneUp](design/gifs/TuneUpScroll.gif) Here is a mock up of the future design: -![Alt text](design/images/TuneUp_Mockup_03_SortedByExecutionOrder.jpg?raw=true "TuneUp") +![TuneUp](design/images/TuneUp_Mockup_03_SortedByExecutionOrder.jpg?raw=true "TuneUp") ## Building + ### Recommended Build Environment + - VisualStudio 2019 - .Net Framework 4.7 Developer Pack - Dynamo repository cloned and built on the same level of TuneUp repository which means your Dynamo repo and TuneUp repo should exist under the same parent folder. ### Result Binaries + - After a `Debug` build of Tuneup one can expect: - - Under `TuneUp\dist\TuneUp`, there is a sample package wrapped up ready for publishing and adoption. This would be the un-optimized version. - - Un-optimized package installed locally for [DynamoVersion] defined in TuneUp/TuneUp.csproj, under DynamoCore and DynamoRevit + - Under `TuneUp\dist\TuneUp`, there is a sample package wrapped up ready for publishing and adoption. This would be the un-optimized version. + - Un-optimized package installed locally for [DynamoVersion] defined in TuneUp/TuneUp.csproj, under DynamoCore and DynamoRevit - After a `Release` build of Tuneup one can expect: Under `TuneUp\dist\TuneUp`, there is a sample package wrapped up ready for publishing and adoption. This would be the optimized version. ## Known issues + - TuneUp does not work with .dyfs (custom nodes) yet. - TuneUp binaries are not semantically versioned and are not intended to be built on top of as an API. Do not treat these binaries like DynamoCore. - TuneUp requires Dynamo 2.5 or higher for access to new extension APIs. @@ -36,9 +40,10 @@ Under `TuneUp\dist\TuneUp`, there is a sample package wrapped up ready for publi ## Testing ### Setup + Please check out known issues before trying to setup testing. -- Download DynamoCoreRuntime 2.5.0 (or higher) from https://dynamobuilds.com/. Alternatively, you can build Dynamo from Dynamo repository and use the bin folder equivalently. +- Download DynamoCoreRuntime 2.5.0 (or higher) from [dynamobuilds.com](https://dynamobuilds.com/). Alternatively, you can build Dynamo from Dynamo repository and use the bin folder equivalently. - Copy all contents of the DynamoCoreRuntime to `TuneUp\TuneUpTests\bin\Debug\`. If you are building Dynamo locally, copy all contents of Dynamo from `Dynamo/bin/AnyCPU/Debug` to `TuneUp\TuneUpTests\bin\Debug\` - Copy `TuneUp_ViewExtensionDefinition.xml` from `TuneUp\TuneUp\manifests\` to `TuneUp\TuneUpTests\bin\Debug\viewExtensions\` - Open the copied `TuneUp_ViewExtensionDefinition.xml` and change the assemply path to `..\TuneUp.dll` @@ -46,6 +51,7 @@ Please check out known issues before trying to setup testing. - Launch DynamoSandbox.exe, then click `View-> Open Tune Up` and use while a graph runs. ### Running TuneUp Unit Tests + - Install NUnit 2 Test Adapter from VisualStudio->Extensions->Manage Extensions->Online. -- Open Test Explorer from VIsualStudio->Test->Test Explorer. Now you should see a list of TuneUpTests. +- Open Test Explorer from VisualStudio->Test->Test Explorer. Now you should see a list of TuneUpTests. - Click the target test to run or run them all.