feat: Add release workflow and changelog configuration for GitHub Act…#35
Conversation
There was a problem hiding this comment.
Pull request overview
Adds automated release tooling for the AL2DBML CLI: a GitHub Actions workflow to publish self-contained binaries for multiple platforms and a git-cliff configuration to generate release changelogs, plus a standardized CLI output name for consistent artifact naming.
Changes:
- Introduces
.github/workflows/release.ymlto build/publish Windows/Linux/macOS binaries and attach them to GitHub Releases. - Adds
cliff.tomlto generate structured changelogs via git-cliff during releases. - Sets CLI
AssemblyNametoal2dbmlto align produced binary names with release artifacts.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/AL2DBML.CLI/AL2DBML.CLI.csproj | Standardizes output binary/assembly name to al2dbml for consistent release artifacts. |
| cliff.toml | Defines git-cliff changelog templating and commit grouping for release notes generation. |
| .github/workflows/release.yml | Implements multi-platform publish + artifact upload and creates/updates GitHub Releases with generated changelog content. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { message = ".*", group = "Other" }, | ||
| ] | ||
| filter_commits = false | ||
| tag_pattern = "v[0-9]*" |
There was a problem hiding this comment.
tag_pattern = "v[0-9]*" won’t match typical SemVer tags like v1.2.3 (the regex only allows digits after v, no dots). This will cause git-cliff --latest to pick the wrong tag or generate an "Unreleased" section during releases. Update the regex to match your actual tag format (e.g., v\d+\.\d+\.\d+.* or similar).
| tag_pattern = "v[0-9]*" | |
| tag_pattern = "v[0-9]+\\.[0-9]+\\.[0-9]+.*" |
| on: | ||
| push: | ||
| tags: | ||
| - 'v*' | ||
| release: | ||
| types: [published] | ||
|
|
There was a problem hiding this comment.
This workflow triggers on both push tags and release: published. For the same version, that can run the pipeline twice and potentially try to recreate/update the same GitHub Release and re-upload assets, causing failures or duplicate work. Consider triggering from only one event (commonly push tags) or gating the release job with an if: so only one path creates/uploads release assets.
Description
This pull request introduces a GitHub Actions workflow for automated multi-platform releases and configures changelog generation using git-cliff. It also standardizes the CLI assembly name for consistency across builds. The most important changes are:
Release Automation:
.github/workflows/release.ymlworkflow to automate building and releasing the CLI for Windows, Linux, and macOS on tag or release events. This includes publishing self-contained binaries, uploading them as artifacts, and attaching them to GitHub Releases.Changelog Generation:
cliff.tomlconfiguration file to enable automated changelog generation using git-cliff, grouping commits by type and formatting the output for releases.Build Configuration:
AssemblyNameproperty toal2dbmlin the CLI project file (AL2DBML.CLI.csproj) to ensure consistent naming of the output binaries.Closes
closes #33