diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9e1f4e0c..12e1eb12 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -34,7 +34,100 @@ jobs: $phase = "" $newVersionString = "" - switch -regex ($Env:GITHUB_REF) { + switch -regex ($Env:GITHUB_REF) {name: Branch Build Using Docker + + on: + push: + branches: + - feature-2.0.0/* + - hotfix-2.0.0/* + - release-2.0.0/* + - 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: . + SOLUTION_FILE: PepperDash.Essentials + # 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 + - 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\/hotfix-2.0.0\/*.' { + $phase = 'hotfix' + $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER + } + '^refs\/heads\/release-2.0.0\/*.' { + $splitRef = $Env:GITHUB_REF -split "/" + $version = [version]($splitRef[-1] -replace "v", "") + $phase = 'rc' + $newVersionString = "{0}-{1}-{2}" -f $version, $phase, $Env:GITHUB_RUN_NUMBER + } + '^refs\/heads\/feature-2.0.0\/*.' { + $phase = 'alpha' + $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER + } + 'development-2.0.0' { + $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 }}" -m + - 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: 'output\**\*.*(cpz|cplz)' + generateReleaseNotes: true + prerelease: ${{contains('debug', env.BUILD_TYPE)}} + tag: ${{ steps.setVersion.outputs.version }} + - name: Setup 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.GITHUB_TOKEN }} -Source github + nuget setApiKey ${{ secrets.NUGET_API_KEY }} -Source https://api.nuget.org/v3/index.json + - name: Publish to Nuget + run: nuget push .\output\*.nupkg -Source https://api.nuget.org/v3/index.json + - name: Publish to Github Nuget + run: nuget push .\output\*.nupkg -Source github '^refs\/pull\/*.' { $phase = 'beta'; $newVersionString = "{0}-{1}-{2}" -f $newVersion, $phase, $Env:GITHUB_RUN_NUMBER