diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 20f4258..967d012 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,8 +6,12 @@ on: Version: description: "This input field requires version in format: x.y.z, where x => major version, y => minor version and z => patch version" required: true + PrereleaseSuffix: + description: "Optional prerelease suffix (e.g. dev1, dev2, dev3). Leave blank for none." + required: false jobs: create-release: + if: github.ref == 'refs/heads/main' name: Creating release version ${{ github.event.inputs.Version }} runs-on: ubuntu-22.04 environment: Production @@ -48,3 +52,33 @@ jobs: slack-message: "core-lib-csharp release has been triggered!" env: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} + + prerelease: + if: github.ref != 'refs/heads/main' + name: Creating prerelease version ${{ github.event.inputs.Version }}-prelease${{ github.event.inputs.PrereleaseSuffix && format('-{0}', github.event.inputs.PrereleaseSuffix) || '' }} + runs-on: ubuntu-22.04 + environment: Production + steps: + - uses: actions/checkout@v3 + + - name: Install .NET Core + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 7.0.x + + - name: Check Prerelease Suffix + run: | + if [ -z "${{ github.event.inputs.PrereleaseSuffix }}" ]; then + echo "Error: PrereleaseSuffix is required for prerelease job." + exit 1 + fi + + - name: Pack as NuPkg + run: | + SUFFIX="${{ github.event.inputs.PrereleaseSuffix }}" + dotnet pack ./APIMatic.Core/APIMatic.Core.csproj -c release -p:PackageVersion=${{ github.event.inputs.Version }}-prelease-$SUFFIX + + - name: Push To NuGet + run: | + SUFFIX="${{ github.event.inputs.PrereleaseSuffix }}" + dotnet nuget push ./APIMatic.Core/bin/release/APIMatic.Core.${{ github.event.inputs.Version }}-prelease-$SUFFIX.nupkg -k ${{ secrets.NUGET_API_KEY }} -s nuget.org