diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..43419fd4 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,97 @@ +name: Branch Build Using Docker + +on: + push: + +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 = "" + + Write-Host "Current GitHub Ref: $Env:GITHUB_REF" + + 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 + } + } + + Write-Host "Version to be used: $newVersionString" + Write-Host "Build Phase: $phase" + + 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: Pack Solution + run: dotnet pack .\$($Env:SOLUTION_FILE).sln --configuration $env:BUILD_TYPE --output ./output /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: '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 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..a0a1f3ba --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,57 @@ +name: main Build using Docker + +on: + release: + types: + - published + branches: + - main-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: 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@v3 + # Generate the appropriate version number + - name: Set Version Number + shell: powershell + id: setVersion + env: + TAG_NAME: ${{ github.event.release.tag_name }} + run: echo "VERSION=$($Env:TAG_NAME)" | 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 + - name: Build Solution + run: msbuild .\$($Env:SOLUTION_FILE).sln /p:Platform="Any CPU" /p:Configuration="Debug" /p:Version="${{ steps.setVersion.outputs.version }}" -m + - name: Pack Solution + run: dotnet pack .\$($Env:SOLUTION_FILE).sln --configuration $env:BUILD_TYPE --output ./output /p:Version="${{ steps.setVersion.outputs.version }}" + - name: Upload Release + id: create_release + uses: ncipollo/release-action@v1 + with: + updateRelease: true + artifacts: 'output\**\*.*(cpz|cplz)' + 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 \ No newline at end of file diff --git a/.releaserc.json b/.releaserc.json index d3e003a3..cf6a6c69 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,6 +1,5 @@ { "branches": [ - "main-2.0.0", { "name": "development-2.0.0", "prerelease": true