diff --git a/.github/workflows/EssentialsPlugins-builds-4-series-caller.yml b/.github/workflows/EssentialsPlugins-builds-4-series-caller.yml new file mode 100644 index 00000000..99b67d92 --- /dev/null +++ b/.github/workflows/EssentialsPlugins-builds-4-series-caller.yml @@ -0,0 +1,21 @@ +name: Build PepperDash Essentials + +on: + push: + branches: + - '**' + +jobs: + getVersion: + uses: PepperDash/workflow-templates/.github/workflows/essentialsplugins-getversion.yml@main + secrets: inherit + build-4Series: + uses: PepperDash/workflow-templates/.github/workflows/essentialsplugins-4Series-builds.yml@main + secrets: inherit + needs: getVersion + if: needs.getVersion.outputs.newVersion == 'true' + with: + newVersion: ${{ needs.getVersion.outputs.newVersion }} + version: ${{ needs.getVersion.outputs.version }} + tag: ${{ needs.getVersion.outputs.tag }} + channel: ${{ needs.getVersion.outputs.channel }} \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index f43a6586..00000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,94 +0,0 @@ -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: 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, 'rc') }} - run: | - git tag ${{ steps.setVersion.outputs.version }} - git push --tags origin - # Create the release on the source repo - - name: Create Release - id: create_release - 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 deleted file mode 100644 index a0a1f3ba..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,57 +0,0 @@ -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 new file mode 100644 index 00000000..416f7dc7 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,36 @@ +{ + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "releaseRules": [ + { "scope": "force-patch", "release": "patch" }, + { "scope": "no-release", "release": false } + ] + } + ], + "@semantic-release/release-notes-generator", + ["@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md" + } + ], + [ + "@semantic-release/exec", + { + "verifyReleaseCmd": "echo \"newVersion=true\" >> $GITHUB_OUTPUT", + "publishCmd": "echo \"version=${nextRelease.version}\" >> $GITHUB_OUTPUT && echo \"tag=${nextRelease.gitTag}\" >> $GITHUB_OUTPUT && echo \"type=${nextRelease.type}\" >> $GITHUB_OUTPUT && echo \"channel=${nextRelease.channel}\" >> $GITHUB_OUTPUT" + } + ] + ], + "branches": [ + "main", + {"name": "development", "prerelease": "beta", "channel": "beta"}, + {"name": "release", "prerelease": "rc", "channel": "rc"}, + { + "name": "replace-me-feature-branch", + "prerelease": "replace-me-prerelease", + "channel": "replace-me-prerelease" + } + ] +} \ No newline at end of file diff --git a/PepperDash.Essentials.sln b/PepperDash.Essentials.4Series.sln similarity index 100% rename from PepperDash.Essentials.sln rename to PepperDash.Essentials.4Series.sln