diff --git a/.github/workflows/Build Essentials.yml b/.github/workflows/Build Essentials.yml
deleted file mode 100644
index 74f97923..00000000
--- a/.github/workflows/Build Essentials.yml
+++ /dev/null
@@ -1,307 +0,0 @@
-name: Build Essentials 2.0.0
-
-on:
- push:
- branches:
- - feature-2.0.0/*
- pull_request:
- types:
- - closed
- branches:
- - development-2.0.0
-
-env:
- # solution path doesn't need slashes unless there it is multiple folders deep
- # solution name does not include extension. .sln is assumed
- SOLUTION_PATH: PepperDashEssentials
- SOLUTION_FILE: PepperDashEssentials
- # Do not edit this, we're just creating it here
- VERSION: 0.0.0-buildtype-buildnumber
- # Defaults to debug for build type
- BUILD_TYPE: Debug
- # Defaults to main as the release branch. Change as necessary
- RELEASE_BRANCH: main
-jobs:
- Build_Project:
- runs-on: windows-latest
- steps:
- # First we checkout the source repo
- - name: Checkout repo
- uses: actions/checkout@v2
- with:
- fetch-depth: 0
- # Fetch all tags
- - name: Fetch tags
- run: git fetch --tags
- # Generate the appropriate version number
- - name: Set Version Number
- shell: powershell
- run: |
- $version = ./.github/scripts/GenerateVersionNumber-2.0.0.ps1
- echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- # Use the version number to set the version of the assemblies
- - name: Update AssemblyInfo.cs
- shell: powershell
- run: |
- ./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }}
- - name: restore Nuget Packages
- run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion
- # Login to Docker
- - name: Login to Docker
- uses: azure/docker-login@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_TOKEN }}
- # Build the solutions in the docker image
- - name: Build Solution
- shell: powershell
- run: |
- Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
- # Zip up the output files as needed
- - name: Zip Build Output
- shell: powershell
- run: ./.github/scripts/ZipBuildOutput.ps1
- # Write the version to a file to be consumed by the push jobs
- - name: Write Version
- run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt"
- # Upload the build output as an artifact
- - name: Upload Build Output
- uses: actions/upload-artifact@v1
- with:
- name: Build
- path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- # Upload the Version file as an artifact
- - name: Upload version.txt
- uses: actions/upload-artifact@v1
- with:
- name: Version
- path: ${{env.GITHUB_HOME}}\output\version.txt
- # Create the release on the source repo
- - name: Create tag for non-rc builds
- if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta')
- run: |
- git tag $($Env:VERSION)
- git push --tags origin
- - name: Create Release
- id: create_release
- # using contributor's version to allow for pointing at the right commit
- if: contains(env.VERSION,'-rc-') || contains(env.VERSION,'-hotfix-')
- uses: fleskesvor/create-release@feature/support-target-commitish
- with:
- tag_name: ${{ env.VERSION }}
- release_name: ${{ env.VERSION }}
- prerelease: ${{contains('debug', env.BUILD_TYPE)}}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # Upload the build package to the release
- - name: Upload Release Package
- if: contains(env.VERSION,'-rc-') || contains(env.VERSION,'-hotfix-')
- id: upload_release
- uses: actions/upload-release-asset@v1
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- asset_content_type: application/zip
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- Push_Nuget_Package:
- needs: Build_Project
- runs-on: windows-latest
- steps:
- - name: Download Build Version Info
- uses: actions/download-artifact@v1
- with:
- name: Version
- - name: Set Version Number
- shell: powershell
- run: |
- Get-ChildItem "./Version"
- $version = Get-Content -Path ./Version/version.txt
- Write-Host "Version: $version"
- echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- Remove-Item -Path ./Version/version.txt
- Remove-Item -Path ./Version
- - name: Download Build output
- uses: actions/download-artifact@v1
- with:
- name: Build
- path: ./
- - name: Unzip Build file
- run: |
- Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
- Remove-Item -Path .\*.zip
- - name: Copy Files to root & delete output directory
- run: |
- Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
- Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
- Remove-Item -Path .\output -Recurse
- - name: Add nuget.exe
- uses: nuget/setup-nuget@v1
- - name: Add Github Packages source
- run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }}
- - name: Add nuget.org API Key
- run: nuget setApiKey ${{ secrets.NUGET_API_KEY }}
- - name: Create nuget package
- run: nuget pack "./PepperDash_Essentials_Core.nuspec" -version ${{ env.VERSION }}
- - name: Publish nuget package to Github registry
- run: nuget push **/*.nupkg -source github
- - name: Publish nuget package to nuget.org
- run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json
- # This step always runs and pushes the build to the internal build rep
- # Internal_Push_Output:
- # needs: Build_Project
- # runs-on: windows-latest
- # steps:
- # - name: check Github ref
- # run: ${{toJson(github.ref)}}
- # # Checkout the repo
- # - name: Checkout Builds Repo
- # uses: actions/checkout@v2
- # with:
- # token: ${{ secrets.BUILDS_TOKEN }}
- # repository: PepperDash-Engineering/essentials-builds
- # ref: ${{ Env.GITHUB_REF }}
- # # Download the version artifact from the build job
- # - name: Download Build Version Info
- # uses: actions/download-artifact@v1
- # with:
- # name: Version
- # - name: Check Directory
- # run: Get-ChildItem "./"
- # # Set the version number environment variable from the file we just downloaded
- # - name: Set Version Number
- # shell: powershell
- # run: |
- # Get-ChildItem "./Version"
- # $version = Get-Content -Path ./Version/version.txt
- # Write-Host "Version: $version"
- # echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- # Remove-Item -Path ./Version/version.txt
- # Remove-Item -Path ./Version
- # # Checkout/Create the branch
- # - name: Create new branch
- # run: git checkout -b $($Env:GITHUB_REF -replace "refs/heads/")
- # # Download the build output into the repo
- # - name: Download Build output
- # uses: actions/download-artifact@v1
- # with:
- # name: Build
- # path: ./
- # - name: Check directory
- # run: Get-ChildItem ./
- # # Unzip the build package file
- # - name: Unzip Build file
- # run: |
- # Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
- # Remove-Item -Path .\*.zip
- # - name: Check directory again
- # run: Get-ChildItem ./
- # # Copy Contents of output folder to root directory
- # - name: Copy Files to root & delete output directory
- # run: |
- # Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
- # Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
- # Remove-Item -Path .\output -Recurse
- # # Commits the build output to the branch and tags it with the version
- # - name: Commit build output and tag the commit
- # shell: powershell
- # run: |
- # git config user.email "actions@pepperdash.com"
- # git config user.name "GitHub Actions"
- # git add .
- # $commit = "Build $($Env:GITHUB_RUN_NUMBER) from commit: https://github.com/$($Env:GITHUB_REPOSITORY)/commit/$($Env:GITHUB_SHA)"
- # Write-Host "Commit: $commit"
- # git commit -m $commit
- # git tag $($Env:VERSION)
- # # Push the commit
- # - name: Push to Builds Repo
- # shell: powershell
- # run: |
- # $branch = $($Env:GITHUB_REF) -replace "refs/heads/"
- # Write-Host "Branch: $branch"
- # git push -u origin $($branch) --force
- # # Push the tags
- # - name: Push tags
- # run: git push --tags origin
- # - name: Check Directory
- # run: Get-ChildItem ./
- # # This step only runs if the branch is main or release/ runs and pushes the build to the public build repo
- # Public_Push_Output:
- # needs: Build_Project
- # runs-on: windows-latest
- # if: contains(github.ref, 'main') || contains(github.ref, '/release/')
- # steps:
- # # Checkout the repo
- # - name: check Github ref
- # run: ${{toJson(github.ref)}}
- # - name: Checkout Builds Repo
- # uses: actions/checkout@v2
- # with:
- # token: ${{ secrets.BUILDS_TOKEN }}
- # repository: PepperDash/Essentials-Builds
- # ref: ${{ Env.GITHUB_REF }}
- # # Download the version artifact from the build job
- # - name: Download Build Version Info
- # uses: actions/download-artifact@v1
- # with:
- # name: Version
- # - name: Check Directory
- # run: Get-ChildItem "./"
- # # Set the version number environment variable from the file we just downloaded
- # - name: Set Version Number
- # shell: powershell
- # run: |
- # Get-ChildItem "./Version"
- # $version = Get-Content -Path ./Version/version.txt
- # Write-Host "Version: $version"
- # echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- # Remove-Item -Path ./Version/version.txt
- # Remove-Item -Path ./Version
- # # Checkout/Create the branch
- # - name: Create new branch
- # run: git checkout -b $($Env:GITHUB_REF -replace "refs/heads/")
- # # Download the build output into the repo
- # - name: Download Build output
- # uses: actions/download-artifact@v1
- # with:
- # name: Build
- # path: ./
- # - name: Check directory
- # run: Get-ChildItem ./
- # # Unzip the build package file
- # - name: Unzip Build file
- # run: |
- # Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
- # Remove-Item -Path .\*.zip
- # - name: Check directory again
- # run: Get-ChildItem ./
- # # Copy Contents of output folder to root directory
- # - name: Copy Files to root & delete output directory
- # run: |
- # Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
- # Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
- # Remove-Item -Path .\output -Recurse
- # # Commits the build output to the branch and tags it with the version
- # - name: Commit build output and tag the commit
- # shell: powershell
- # run: |
- # git config user.email "actions@pepperdash.com"
- # git config user.name "GitHub Actions"
- # git add .
- # $commit = "Build $($Env:GITHUB_RUN_NUMBER) from commit: https://github.com/$($Env:GITHUB_REPOSITORY)/commit/$($Env:GITHUB_SHA)"
- # Write-Host "Commit: $commit"
- # git commit -m $commit
- # git tag $($Env:VERSION)
- # # Push the commit
- # - name: Push to Builds Repo
- # shell: powershell
- # run: |
- # $branch = $($Env:GITHUB_REF) -replace "refs/heads/"
- # Write-Host "Branch: $branch"
- # git push -u origin $($branch) --force
- # # Push the tags
- # - name: Push tags
- # run: git push --tags origin
- # - name: Check Directory
- # run: Get-ChildItem ./
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
deleted file mode 100644
index cdcc925b..00000000
--- a/.github/workflows/docker.yml
+++ /dev/null
@@ -1,141 +0,0 @@
-name: Branch Build Using Docker
-
-on:
- push:
- branches:
- - feature/*
- - hotfix/*
- - bugfix/*
- - release/*
- - development
-
-env:
- # solution path doesn't need slashes unless it is multiple folders deep
- # solution name does not include extension. .sln is assumed
- SOLUTION_PATH: PepperDashEssentials
- SOLUTION_FILE: PepperDashEssentials
- # Do not edit this, we're just creating it here
- VERSION: 0.0.0-buildtype-buildnumber
- # Defaults to debug for build type
- BUILD_TYPE: Debug
- # Defaults to main as the release branch. Change as necessary
- RELEASE_BRANCH: main
-jobs:
- Build_Project:
- runs-on: windows-2019
- steps:
- # First we checkout the source repo
- - name: Checkout repo
- uses: actions/checkout@v2
- with:
- fetch-depth: 0
- # Fetch all tags
- - name: Fetch tags
- run: git fetch --tags
- # Generate the appropriate version number
- - name: Set Version Number
- shell: powershell
- run: |
- $version = ./.github/scripts/GenerateVersionNumber.ps1
- echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- # Use the version number to set the version of the assemblies
- - name: Update AssemblyInfo.cs
- shell: powershell
- run: |
- ./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }}
- - name: restore Nuget Packages
- run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion
- # Login to Docker
- - name: Login to Docker
- uses: azure/docker-login@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_TOKEN }}
- # Build the solutions in the docker image
- - name: Build Solution
- shell: powershell
- run: |
- Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
- # Zip up the output files as needed
- - name: Zip Build Output
- shell: powershell
- run: ./.github/scripts/ZipBuildOutput.ps1
- # Write the version to a file to be consumed by the push jobs
- - name: Write Version
- run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt"
- # Upload the build output as an artifact
- - name: Upload Build Output
- uses: actions/upload-artifact@v1
- with:
- name: Build
- path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- # Upload the Version file as an artifact
- - name: Upload version.txt
- uses: actions/upload-artifact@v1
- with:
- name: Version
- path: ${{env.GITHUB_HOME}}\output\version.txt
- - name: Create Release
- id: create_release
- # using contributor's version to allow for pointing at the right commit
- uses: fleskesvor/create-release@feature/support-target-commitish
- with:
- tag_name: ${{ env.VERSION }}
- release_name: ${{ env.VERSION }}
- prerelease: ${{contains('debug', env.BUILD_TYPE)}}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # Upload the build package to the release
- - name: Upload Release Package
- id: upload_release
- uses: actions/upload-release-asset@v1
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- asset_content_type: application/zip
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- Push_Nuget_Package:
- needs: Build_Project
- runs-on: windows-latest
- steps:
- - name: Download Build Version Info
- uses: actions/download-artifact@v1
- with:
- name: Version
- - name: Set Version Number
- shell: powershell
- run: |
- Get-ChildItem "./Version"
- $version = Get-Content -Path ./Version/version.txt
- Write-Host "Version: $version"
- echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- Remove-Item -Path ./Version/version.txt
- Remove-Item -Path ./Version
- - name: Download Build output
- uses: actions/download-artifact@v1
- with:
- name: Build
- path: ./
- - name: Unzip Build file
- run: |
- Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
- Remove-Item -Path .\*.zip
- - name: Copy Files to root & delete output directory
- run: |
- Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
- Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
- Remove-Item -Path .\output -Recurse
- - name: Add nuget.exe
- uses: nuget/setup-nuget@v1
- - name: Add Github Packages source
- run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }}
- - name: Add nuget.org API Key
- run: nuget setApiKey ${{ secrets.NUGET_API_KEY }}
- - name: Create nuget package
- run: nuget pack "./PepperDash_Essentials_Core.nuspec" -version ${{ env.VERSION }}
- - name: Publish nuget package to Github registry
- run: nuget push **/*.nupkg -source github
- - name: Publish nuget package to nuget.org
- run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json
diff --git a/.github/workflows/essentialsplugins-betabuilds.yml b/.github/workflows/essentialsplugins-betabuilds.yml
new file mode 100644
index 00000000..0c80d0fb
--- /dev/null
+++ b/.github/workflows/essentialsplugins-betabuilds.yml
@@ -0,0 +1,271 @@
+name: 2.0.0 Branch Build Using Docker
+
+on:
+ push:
+ branches:
+ - feature/*
+ - hotfix/*
+ - release/*
+ - dev*
+
+env:
+ # Do not edit this, we're just creating it here
+ VERSION: 0.0.0-buildtype-buildnumber
+ # Defaults to debug for build type
+ BUILD_TYPE: Debug
+ # Defaults to master as the release branch. Change as necessary
+ RELEASE_BRANCH: main
+jobs:
+ Build_Project:
+ runs-on: windows-latest
+ steps:
+ # First we checkout the source repo
+ - name: Checkout repo
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ # Fetch all tags
+ - name: Fetch tags
+ run: git fetch --tags
+ # Generate the appropriate version number
+ - name: Set Version Number
+ shell: powershell
+ run: |
+ $latestVersions = $(git tag --merged origin/main)
+ $latestVersion = [version]"0.0.0"
+ Foreach ($version in $latestVersions) {
+ Write-Host $version
+ try {
+ if (([version]$version) -ge $latestVersion) {
+ $latestVersion = $version
+ Write-Host "Setting latest version to: $latestVersion"
+ }
+ }
+ catch {
+ Write-Host "Unable to convert $($version). Skipping"
+ continue;
+ }
+ }
+
+ $newVersion = [version]$latestVersion
+ $phase = ""
+ $newVersionString = ""
+ switch -regex ($Env:GITHUB_REF) {
+ '^refs\/heads\/main*.' {
+ $newVersionString = "{0}.{1}.{2}" -f $newVersion.Major, $newVersion.Minor, $newVersion.Build
+ }
+ '^refs\/heads\/feature\/*.' {
+ $phase = 'alpha'
+ $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
+ }
+ '^refs\/heads\/release\/*.' {
+ $splitRef = $Env:GITHUB_REF -split "/"
+ $version = [version]($splitRef[-1] -replace "v", "")
+ $phase = 'rc'
+ $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $version.Major, $version.Minor, $version.Build, $phase, $Env:GITHUB_RUN_NUMBER
+ }
+ '^refs\/heads\/dev*.' {
+ $phase = 'beta'
+ $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
+ }
+ '^refs\/heads\/hotfix\/*.' {
+ $phase = 'hotfix'
+ $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
+ }
+ }
+ echo "VERSION=$newVersionString" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ # Use the version number to set the version of the assemblies
+ - name: Update AssemblyInfo.cs
+ shell: powershell
+ run: |
+ function Update-SourceVersion {
+ Param ([string]$Version)
+ #$fullVersion = $Version
+ $baseVersion = [regex]::Match($Version, "(\d+.\d+.\d+).*").captures.groups[1].value
+ $NewAssemblyVersion = 'AssemblyVersion("' + $baseVersion + '.*")'
+ Write-Output "AssemblyVersion = $NewAssemblyVersion"
+ $NewAssemblyInformationalVersion = 'AssemblyInformationalVersion("' + $Version + '")'
+ Write-Output "AssemblyInformationalVersion = $NewAssemblyInformationalVersion"
+ foreach ($o in $input) {
+ Write-output $o.FullName
+ $TmpFile = $o.FullName + ".tmp"
+ get-content $o.FullName |
+ ForEach-Object {
+ $_ -replace 'AssemblyVersion\(".*"\)', $NewAssemblyVersion } |
+ ForEach-Object {
+ $_ -replace 'AssemblyInformationalVersion\(".*"\)', $NewAssemblyInformationalVersion
+ } > $TmpFile
+ move-item $TmpFile $o.FullName -force
+ }
+ }
+ function Update-AllAssemblyInfoFiles ( $version ) {
+ foreach ($file in "AssemblyInfo.cs", "AssemblyInfo.vb" ) {
+ get-childitem -Path $Env:GITHUB_WORKSPACE -recurse | Where-Object { $_.Name -eq $file } | Update-SourceVersion $version ;
+ }
+ }
+ # validate arguments
+ $r = [System.Text.RegularExpressions.Regex]::Match($Env:VERSION, "\d+\.\d+\.\d+.*");
+ if ($r.Success) {
+ Write-Output "Updating Assembly Version to $Env:VERSION ...";
+ Update-AllAssemblyInfoFiles $Env:VERSION;
+ }
+ else {
+ Write-Output " ";
+ Write-Output "Error: Input version $Env:VERSION does not match x.y.z format!"
+ Write-Output " ";
+ Write-Output "Unable to apply version to AssemblyInfo.cs files";
+ }
+ - name: restore Nuget Packages
+ run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion
+ # Set the SOLUTION_PATH
+ - name: Get SLN Path
+ shell: powershell
+ run: |
+ $solution_path = Get-ChildItem *.sln -recurse
+ $solution_path = $solution_path.FullName
+ $solution_path = $solution_path -replace "(?:[^\\]*\\){4}", ""
+ Write-Output $solution_path
+ echo "SOLUTION_PATH=$($solution_path)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ # Set the SOLUTION_FILE
+ - name: Get SLN File
+ shell: powershell
+ run: |
+ $solution_file = Get-ChildItem .\*.sln -recurse -Path "$($Env:GITHUB_WORKSPACE)"
+ echo "SOLUTION_FILE=$($solution_file.BaseName)"| Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ # Login to Docker
+ - name: Login to Docker
+ uses: azure/docker-login@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USER }}
+ password: ${{ secrets.DOCKERHUB_PASSWORD }}
+ # Build the solutions in the docker image
+ - name: Build Solution
+ shell: powershell
+ run: |
+ Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_PATH)"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
+ # Zip up the output files as needed
+ - name: Zip Build Output
+ shell: powershell
+ run: |
+ $destination = "$($Env:GITHUB_HOME)\output"
+ New-Item -ItemType Directory -Force -Path ($destination)
+ Get-ChildItem ($destination)
+ $exclusions = "packages"
+ # Trying to get any .json schema files (not currently working)
+ # Gets any files with the listed extensions.
+ Get-ChildItem -recurse -Path "$($Env:GITHUB_WORKSPACE)" -include "*.clz", "*.cpz", "*.cplz", "*.nuspec" | ForEach-Object {
+ $allowed = $true;
+ # Exclude any files in submodules
+ foreach ($exclude in $exclusions) {
+ if ((Split-Path $_.FullName -Parent).contains("$($exclude)")) {
+ $allowed = $false;
+ break;
+ }
+ }
+ if ($allowed) {
+ Write-Host "allowing $($_)"
+ $_;
+ }
+ } | Copy-Item -Destination ($destination) -Force
+ Write-Host "Getting matching files..."
+ # Get any files from the output folder that match the following extensions
+ Get-ChildItem -Path $destination | Where-Object {($_.Extension -eq ".clz") -or ($_.Extension -eq ".cpz" -or ($_.Extension -eq ".cplz"))} | ForEach-Object {
+ # Replace the extensions with dll and xml and create an array
+ $filenames = @($($_ -replace "cpz|clz|cplz", "dll"), $($_ -replace "cpz|clz|cplz", "xml"))
+ Write-Host "Filenames:"
+ Write-Host $filenames
+ if ($filenames.length -gt 0) {
+ # Attempt to get the files and return them to the output directory
+ Get-ChildItem -Recurse -Path "$($Env:GITHUB_WORKSPACE)" -include $filenames | Copy-Item -Destination ($destination) -Force
+ }
+ }
+ Get-ChildItem -Path $destination\*.cplz | Rename-Item -NewName { "$($_.BaseName)-$($Env:VERSION)$($_.Extension)" }
+ Compress-Archive -Path $destination -DestinationPath "$($Env:GITHUB_WORKSPACE)\$($Env:SOLUTION_FILE)-$($Env:VERSION).zip" -Force
+ Write-Host "Output Contents post Zip"
+ Get-ChildItem -Path $destination
+ # Write the version to a file to be consumed by the push jobs
+ - name: Write Version
+ run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt"
+ # Upload output files
+ - name: Upload Build Output
+ uses: actions/upload-artifact@v1
+ with:
+ name: Build
+ path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
+ # Upload the Version file as an artifact
+ - name: Upload version.txt
+ uses: actions/upload-artifact@v1
+ with:
+ name: Version
+ path: ${{env.GITHUB_HOME}}\output\version.txt
+ # Create the release on the source repo
+ - name: Create Release
+ id: create_release
+ uses: fleskesvor/create-release@feature/support-target-commitish
+ with:
+ tag_name: ${{ env.VERSION }}
+ release_name: ${{ env.VERSION }}
+ prerelease: ${{contains('debug', env.BUILD_TYPE)}}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # Upload the build package to the release
+ - name: Upload Release Package
+ id: upload_release
+ uses: actions/upload-release-asset@v1
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
+ asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
+ asset_content_type: application/zip
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ Push_Nuget_Package:
+ needs: Build_Project
+ runs-on: windows-latest
+ steps:
+ - name: Download Build Version Info
+ uses: actions/download-artifact@v1
+ with:
+ name: Version
+ - name: Set Version Number
+ shell: powershell
+ run: |
+ Get-ChildItem "./Version"
+ $version = Get-Content -Path ./Version/version.txt
+ Write-Host "Version: $version"
+ echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ Remove-Item -Path ./Version/version.txt
+ Remove-Item -Path ./Version
+ - name: Download Build output
+ uses: actions/download-artifact@v1
+ with:
+ name: Build
+ path: ./
+ - name: Unzip Build file
+ run: |
+ Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
+ Remove-Item -Path .\*.zip
+ - name: Copy Files to root & delete output directory
+ run: |
+ Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
+ Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
+ Remove-Item -Path .\output -Recurse
+ - name: Get nuget File
+ shell: powershell
+ run: |
+ $nuspec_file = Get-ChildItem *.nuspec -recurse
+ echo "NUSPEC_FILE=$($nuspec_file.BaseName)"| Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ - name: Add nuget.exe
+ uses: nuget/setup-nuget@v1
+ - name: Add Github Packages source
+ run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }}
+ # Pushes to nuget, not needed unless publishing publicly
+ - name: Add nuget.org API Key
+ run: nuget setApiKey ${{ secrets.NUGET_API_KEY }}
+ - name: Create nuget package
+ run: nuget pack "./${{ env.NUSPEC_FILE}}.nuspec" -version ${{ env.VERSION }}
+ - name: Publish nuget package to Github registry
+ run: nuget push **/*.nupkg -source github
+ # Pushes to nuget, not needed unless publishing publicly >> this pushes package to nuget.org
+ - name: Publish nuget package to nuget.org
+ run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json
diff --git a/.github/workflows/essentialsplugins-releasebuilds.yml b/.github/workflows/essentialsplugins-releasebuilds.yml
new file mode 100644
index 00000000..b70e9bf3
--- /dev/null
+++ b/.github/workflows/essentialsplugins-releasebuilds.yml
@@ -0,0 +1,219 @@
+name: 2.0.0 Main Build using Docker
+
+on:
+ release:
+ types:
+ - released
+ branches:
+ - main
+
+env:
+ # Do not edit this, we're just creating it here
+ VERSION: 0.0.0-buildtype-buildnumber
+ # Defaults to debug for build type
+ BUILD_TYPE: Debug
+ # Defaults to master as the release branch. Change as necessary
+ RELEASE_BRANCH: main
+jobs:
+ Build_Project:
+ runs-on: windows-latest
+ steps:
+ # First we checkout the source repo
+ - name: Checkout repo
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ # Fetch all tags
+ - name: Fetch tags
+ run: git fetch --tags
+ # Generate the appropriate version number
+ - name: Set Version Number
+ shell: powershell
+ env:
+ TAG_NAME: ${{ github.event.release.tag_name }}
+ run: echo "VERSION=$($Env:TAG_NAME)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ # Use the version number to set the version of the assemblies
+ - name: Update AssemblyInfo.cs
+ shell: powershell
+ run: |
+ function Update-SourceVersion {
+ Param ([string]$Version)
+ #$fullVersion = $Version
+ $baseVersion = [regex]::Match($Version, "(\d+.\d+.\d+).*").captures.groups[1].value
+ $NewAssemblyVersion = 'AssemblyVersion("' + $baseVersion + '.*")'
+ Write-Output "AssemblyVersion = $NewAssemblyVersion"
+ $NewAssemblyInformationalVersion = 'AssemblyInformationalVersion("' + $Version + '")'
+ Write-Output "AssemblyInformationalVersion = $NewAssemblyInformationalVersion"
+ foreach ($o in $input) {
+ Write-output $o.FullName
+ $TmpFile = $o.FullName + ".tmp"
+ get-content $o.FullName |
+ ForEach-Object {
+ $_ -replace 'AssemblyVersion\(".*"\)', $NewAssemblyVersion } |
+ ForEach-Object {
+ $_ -replace 'AssemblyInformationalVersion\(".*"\)', $NewAssemblyInformationalVersion
+ } > $TmpFile
+ move-item $TmpFile $o.FullName -force
+ }
+ }
+ function Update-AllAssemblyInfoFiles ( $version ) {
+ foreach ($file in "AssemblyInfo.cs", "AssemblyInfo.vb" ) {
+ get-childitem -Path $Env:GITHUB_WORKSPACE -recurse | Where-Object { $_.Name -eq $file } | Update-SourceVersion $version ;
+ }
+ }
+ # validate arguments
+ $r = [System.Text.RegularExpressions.Regex]::Match($Env:VERSION, "\d+\.\d+\.\d+.*");
+ if ($r.Success) {
+ Write-Output "Updating Assembly Version to $Env:VERSION ...";
+ Update-AllAssemblyInfoFiles $Env:VERSION;
+ }
+ else {
+ Write-Output " ";
+ Write-Output "Error: Input version $Env:VERSION does not match x.y.z format!"
+ Write-Output " ";
+ Write-Output "Unable to apply version to AssemblyInfo.cs files";
+ }
+ - name: restore Nuget Packages
+ run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion
+ # Set the SOLUTION_PATH
+ - name: Get SLN Path
+ shell: powershell
+ run: |
+ $solution_path = Get-ChildItem *.sln -recurse
+ $solution_path = $solution_path.FullName
+ $solution_path = $solution_path -replace "(?:[^\\]*\\){4}", ""
+ Write-Output $solution_path
+ echo "SOLUTION_PATH=$($solution_path)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ # Set the SOLUTION_FILE
+ - name: Get SLN File
+ shell: powershell
+ run: |
+ $solution_file = Get-ChildItem .\*.sln -recurse -Path "$($Env:GITHUB_WORKSPACE)"
+ echo "SOLUTION_FILE=$($solution_file.BaseName)"| Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ # Login to Docker
+ - name: Login to Docker
+ uses: azure/docker-login@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USER }}
+ password: ${{ secrets.DOCKERHUB_PASSWORD }}
+ # Build the solutions in the docker image
+ - name: Build Solution
+ shell: powershell
+ run: |
+ Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_PATH)"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
+ # Zip up the output files as needed
+ - name: Zip Build Output
+ shell: powershell
+ run: |
+ $destination = "$($Env:GITHUB_HOME)\output"
+ New-Item -ItemType Directory -Force -Path ($destination)
+ Get-ChildItem ($destination)
+ $exclusions = "packages"
+ # Trying to get any .json schema files (not currently working)
+ # Gets any files with the listed extensions.
+ Get-ChildItem -recurse -Path "$($Env:GITHUB_WORKSPACE)" -include "*.clz", "*.cpz", "*.cplz", "*.nuspec" | ForEach-Object {
+ $allowed = $true;
+ # Exclude any files in submodules
+ foreach ($exclude in $exclusions) {
+ if ((Split-Path $_.FullName -Parent).contains("$($exclude)")) {
+ $allowed = $false;
+ break;
+ }
+ }
+ if ($allowed) {
+ Write-Host "allowing $($_)"
+ $_;
+ }
+ } | Copy-Item -Destination ($destination) -Force
+ Write-Host "Getting matching files..."
+ # Get any files from the output folder that match the following extensions
+ Get-ChildItem -Path $destination | Where-Object {($_.Extension -eq ".clz") -or ($_.Extension -eq ".cpz" -or ($_.Extension -eq ".cplz"))} | ForEach-Object {
+ # Replace the extensions with dll and xml and create an array
+ $filenames = @($($_ -replace "cpz|clz|cplz", "dll"), $($_ -replace "cpz|clz|cplz", "xml"))
+ Write-Host "Filenames:"
+ Write-Host $filenames
+ if ($filenames.length -gt 0) {
+ # Attempt to get the files and return them to the output directory
+ Get-ChildItem -Recurse -Path "$($Env:GITHUB_WORKSPACE)" -include $filenames | Copy-Item -Destination ($destination) -Force
+ }
+ }
+ Get-ChildItem -Path $destination\*.cplz | Rename-Item -NewName { "$($_.BaseName)-$($Env:VERSION)$($_.Extension)" }
+ Compress-Archive -Path $destination -DestinationPath "$($Env:GITHUB_WORKSPACE)\$($Env:SOLUTION_FILE)-$($Env:VERSION).zip" -Force
+ Write-Host "Output Contents post Zip"
+ Get-ChildItem -Path $destination
+ # Write the version to a file to be consumed by the push jobs
+ - name: Write Version
+ run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt"
+ # Upload output files
+ - name: Upload Build Output
+ uses: actions/upload-artifact@v1
+ with:
+ name: Build
+ path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
+ # Upload the Version file as an artifact
+ - name: Upload version.txt
+ uses: actions/upload-artifact@v1
+ with:
+ name: Version
+ path: ${{env.GITHUB_HOME}}\output\version.txt
+ # Upload the build package to the release
+ - name: Upload Release Package
+ id: upload_release
+ uses: actions/upload-release-asset@v1
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
+ asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
+ asset_content_type: application/zip
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ Push_Nuget_Package:
+ needs: Build_Project
+ runs-on: windows-latest
+ steps:
+ - name: Download Build Version Info
+ uses: actions/download-artifact@v1
+ with:
+ name: Version
+ - name: Set Version Number
+ shell: powershell
+ run: |
+ Get-ChildItem "./Version"
+ $version = Get-Content -Path ./Version/version.txt
+ Write-Host "Version: $version"
+ echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ Remove-Item -Path ./Version/version.txt
+ Remove-Item -Path ./Version
+ - name: Download Build output
+ uses: actions/download-artifact@v1
+ with:
+ name: Build
+ path: ./
+ - name: Unzip Build file
+ run: |
+ Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
+ Remove-Item -Path .\*.zip
+ - name: Copy Files to root & delete output directory
+ run: |
+ Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
+ Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
+ Remove-Item -Path .\output -Recurse
+ - name: Get nuget File
+ shell: powershell
+ run: |
+ $nuspec_file = Get-ChildItem *.nuspec -recurse
+ echo "NUSPEC_FILE=$($nuspec_file.BaseName)"| Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ - name: Add nuget.exe
+ uses: nuget/setup-nuget@v1
+ - name: Add Github Packages source
+ run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }}
+ # Pushes to nuget, not needed unless publishing publicly
+ - name: Add nuget.org API Key
+ run: nuget setApiKey ${{ secrets.NUGET_API_KEY }}
+ - name: Create nuget package
+ run: nuget pack "./${{ env.NUSPEC_FILE}}.nuspec" -version ${{ env.VERSION }}
+ - name: Publish nuget package to Github registry
+ run: nuget push **/*.nupkg -source github
+ # Pushes to nuget, not needed unless publishing publicly >> this pushes package to nuget.org
+ - name: Publish nuget package to nuget.org
+ run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index ef43152b..00000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,125 +0,0 @@
-name: main Build using Docker
-
-on:
- release:
- types:
- - created
- branches:
- - main
-env:
- # solution path doesn't need slashes unless there it is multiple folders deep
- # solution name does not include extension. .sln is assumed
- SOLUTION_PATH: PepperDashEssentials
- SOLUTION_FILE: PepperDashEssentials
- # Do not edit this, we're just creating it here
- VERSION: 0.0.0-buildtype-buildnumber
- # Defaults to debug for build type
- BUILD_TYPE: Release
- # Defaults to main as the release branch. Change as necessary
- RELEASE_BRANCH: main
-jobs:
- Build_Project:
- runs-on: windows-2019
- steps:
- # First we checkout the source repo
- - name: Checkout repo
- uses: actions/checkout@v2
- with:
- fetch-depth: 0
- # Generate the appropriate version number
- - name: Set Version Number
- shell: powershell
- env:
- TAG_NAME: ${{ github.event.release.tag_name }}
- run: echo "VERSION=$($Env:TAG_NAME)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- # Use the version number to set the version of the assemblies
- - name: Update AssemblyInfo.cs
- shell: powershell
- run: |
- ./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }}
- - name: restore Nuget Packages
- run: nuget install .\packages.config -OutputDirectory .\packages -ExcludeVersion
- # Login to Docker
- - name: Login to Docker
- uses: azure/docker-login@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_TOKEN }}
- # Build the solutions in the docker image
- - name: Build Solution
- shell: powershell
- run: |
- Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
- # Zip up the output files as needed
- - name: Zip Build Output
- shell: powershell
- run: ./.github/scripts/ZipBuildOutput.ps1
- # Write the version to a file to be consumed by the push jobs
- - name: Write Version
- run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt"
- # Upload the build output as an artifact
- - name: Upload Build Output
- uses: actions/upload-artifact@v1
- with:
- name: Build
- path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- # Upload the Version file as an artifact
- - name: Upload version.txt
- uses: actions/upload-artifact@v1
- with:
- name: Version
- path: ${{env.GITHUB_HOME}}\output\version.txt
- # Upload the build package to the release
- - name: Upload Release Package
- id: upload_release
- uses: actions/upload-release-asset@v1
- with:
- upload_url: ${{ github.event.release.upload_url }}
- asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
- asset_content_type: application/zip
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- Push_Nuget_Package:
- needs: Build_Project
- runs-on: windows-latest
- steps:
- - name: Download Build Version Info
- uses: actions/download-artifact@v1
- with:
- name: Version
- - name: Set Version Number
- shell: powershell
- run: |
- Get-ChildItem "./Version"
- $version = Get-Content -Path ./Version/version.txt
- Write-Host "Version: $version"
- echo "VERSION=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- Remove-Item -Path ./Version/version.txt
- Remove-Item -Path ./Version
- - name: Download Build output
- uses: actions/download-artifact@v1
- with:
- name: Build
- path: ./
- - name: Unzip Build file
- run: |
- Get-ChildItem .\*.zip | Expand-Archive -DestinationPath .\
- Remove-Item -Path .\*.zip
- - name: Copy Files to root & delete output directory
- run: |
- Remove-Item -Path .\* -Include @("*.cpz","*.md","*.cplz","*.json","*.dll","*.clz")
- Get-ChildItem -Path .\output\* | Copy-Item -Destination .\
- Remove-Item -Path .\output -Recurse
- - name: Add nuget.exe
- uses: nuget/setup-nuget@v1
- - name: Add Github Packages source
- run: nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }}
- - name: Add nuget.org API Key
- run: nuget setApiKey ${{ secrets.NUGET_API_KEY }}
- - name: Create nuget package
- run: nuget pack "./PepperDash_Essentials_Core.nuspec" -version ${{ env.VERSION }}
- - name: Publish nuget package to Github registry
- run: nuget push **/*.nupkg -source github
- - name: Publish nuget package to nuget.org
- run: nuget push **/*.nupkg -Source https://api.nuget.org/v3/index.json
diff --git a/PepperDash_Essentials.nuspec b/PepperDash_Essentials.nuspec
index c2394428..8793b700 100644
--- a/PepperDash_Essentials.nuspec
+++ b/PepperDash_Essentials.nuspec
@@ -8,7 +8,7 @@
pepperdash
false
MIT
- https://github.com/PepperDash/PepperDashCore
+ https://github.com/PepperDash/Essentials
Copyright 2020
PepperDash Essentials is an open source Crestron framework that can be configured as a standalone program capable of running a wide variety of system designs and can also be utilized as a plug-in architecture to augment other Simpl# Pro and Simpl Windows programs. Essentials Framework is a collection of C# / Simpl# Pro libraries that can be utilized in several different manners. It is currently operating as a 100% configuration-driven system, and can be extended to add different workflows and behaviors, either through the addition of further device "types" or via the plug-in mechanism. The framework is a collection of "things" that are all related and interconnected, but in general do not have dependencies on each other.
crestron 3series 4series