Skip to content

ci: add automated release workflow#10

Merged
altaywtf merged 1 commit into
masterfrom
add-semantic-release
May 8, 2026
Merged

ci: add automated release workflow#10
altaywtf merged 1 commit into
masterfrom
add-semantic-release

Conversation

@altaywtf

@altaywtf altaywtf commented May 8, 2026

Copy link
Copy Markdown
Member

Changed

  • Adds semantic-release config for tag-only Go module releases on master.
  • Adds a release job after the existing test and quality jobs pass.
  • Uses only the built-in GitHub Actions bot token with contents: write permission.
  • Removes tag-triggered CI runs so release-created tags do not cause duplicate workflow runs.
  • Documents the release model in docs/RELEASE.md.

Risks

  • The first merge after this lands should create v1.7.3 because fix: improve ValidateToken invalid response handling (#8) is still newer than the latest v1.7.2 tag.
  • semantic-release is configured for master, matching the current repository branch.
  • No GoReleaser or package-registry publishing is configured; Go module publishing remains git-tag based.

Complexity

  • Neutral: release automation is isolated to GitHub Actions, .releaserc.json, and release docs.

Verification

  • actionlint
  • mise exec go@1.26.2 -- go test -v ./...
  • mise exec go@1.26.2 -- go test -race -count=1 ./...
  • mise exec go@1.26.2 golangci-lint@2.11.3 -- golangci-lint run ./...
  • jq . .releaserc.json

Copilot AI review requested due to automatic review settings May 8, 2026 10:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces automated, tag-based Go module releases on the master branch using semantic-release, integrated into the existing GitHub Actions CI pipeline.

Changes:

  • Adds a semantic-release configuration (.releaserc.json) targeting master with Conventional Commits analysis and GitHub Release publication.
  • Extends the CI workflow to run a gated release job after tests and linting pass, granting only contents: write for the release job.
  • Documents the release and versioning model in docs/RELEASE.md.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
docs/RELEASE.md Documents the intended automated release model, required token, and local verification checks.
.releaserc.json Configures semantic-release branch and plugins for commit analysis and GitHub release publishing.
.github/workflows/ci.yml Adds a post-CI release job on pushes to master and removes tag-triggered CI runs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
fetch-depth: 0

- name: Release
uses: cycjimmy/semantic-release-action@v6
Comment thread .github/workflows/ci.yml
Comment on lines +86 to +89
@semantic-release/commit-analyzer
@semantic-release/release-notes-generator
@semantic-release/github
conventional-changelog-conventionalcommits
@altaywtf altaywtf merged commit 41c88df into master May 8, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants