name: Branch Build Using Docker on: push: branches: - feature-2/* - hotfix-2/* - release-2/* - development-2 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: . SOLUTION_FILE: PepperDash Core # 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_4-Series: runs-on: windows-latest steps: - uses: actions/checkout@v3 # Fetch all tags - name: Fetch tags run: git fetch --tags # Generate the appropriate version number - name: Set Version Number id: setVersion shell: powershell run: | $latestVersion = [version]"2.0.0" $newVersion = [version]$latestVersion $phase = "" $newVersionString = "" switch -regex ($Env:GITHUB_REF) { '^refs\/pull\/*.' { $phase = 'beta'; $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER } '^refs\/heads\/feature-2\/*.' { $phase = 'alpha' $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER } 'development-2' { $phase = 'beta' $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER } } echo "version=$newVersionString" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append - name: Setup MS Build uses: microsoft/setup-msbuild@v1.1 - name: restore Nuget Packages run: nuget restore .\$($Env:SOLUTION_FILE).sln # Build the solutions in the docker image - name: Build Solution run: msbuild .\$($Env:SOLUTION_FILE).sln /p:Platform="Any CPU" /p:Configuration="Debug" /p:Version="${{ steps.setVersion.outputs.version }}" - name: Create tag for non-rc builds if: contains(steps.setVersion.outputs.version, 'alpha') run: | git tag ${{ steps.setVersion.outputs.version }} git push --tags origin # Create the release on the source repo - name: Create Release id: create_release if: contains(steps.setVersion.outputs.version,'-rc-') || contains(steps.setVersion.outputs.version,'-hotfix-') || contains(steps.setVersion.outputs.version, 'beta') uses: ncipollo/release-action@v1 with: artifacts: '**\*.clz' generateReleaseNotes: true prerelease: ${{contains('debug', env.BUILD_TYPE)}} tag: ${{ steps.setVersion.outputs.version }} - name: Publish to Nuget run: | nuget sources add -name github -source https://nuget.pkg.github.com/pepperdash/index.json -username Pepperdash -password ${{ secrets.GITHUB_TOKEN }} nuget setApiKey ${{ secrets.NUGET_API_KEY }} nuget push ".\package\PepperDashCore.${{ steps.setVersion.outputs.version }}.nupkg" -Source github nuget push ".\package\PepperDashCore.${{ steps.setVersion.outputs.version }}.nupkg" -Source https://api.nuget.org/v3/index.json