Skip to content

CI: Add automated changelog and GitHub Release to release pipeline #36

@arkanaai

Description

@arkanaai

Summary

The NuGet publish pipeline already triggers on master and tags. What's missing is an automated changelog generation and GitHub Release creation as part of the CI release flow.

Current State

The .github/workflows/build.yml pipeline has:

  • ✅ Build & unit tests
  • ✅ E2E tests
  • ✅ NuGet publish (on master or tags)
  • ❌ GitHub Release creation
  • ❌ Changelog generation

Proposed Changes

  1. Add a release job to the CI pipeline that runs after publish, triggered only on tags (refs/tags/*)
  2. Use git-cliff to generate a changelog from conventional commits
  3. Create a GitHub Release with the generated changelog body
  4. Add a cliff.toml config tuned for the dotnet-sdk commit style

Implementation Sketch

release:
  name: GitHub Release
  runs-on: ubuntu-latest
  needs: publish
  if: startsWith(github.ref, 'refs/tags/')
  permissions:
    contents: write
  steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Generate changelog
      id: changelog
      uses: orhun/git-cliff-action@v4
      with:
        config: cliff.toml
        args: --latest --strip header
    - name: Create GitHub Release
      uses: softprops/action-gh-release@v2
      with:
        body: ${{ steps.changelog.outputs.content }}
        generate_release_notes: false

Notes

  • Changelog should only generate on tags (not every master push)
  • Commit style in this repo should be reviewed to tune cliff.toml groupings
  • NUGET_API_KEY secret already configured

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions