Skip to content

modanize releaser workflow - #26

Merged
mashiike merged 2 commits into
masterfrom
feature/modanize-releaser-workflow
Oct 29, 2025
Merged

modanize releaser workflow#26
mashiike merged 2 commits into
masterfrom
feature/modanize-releaser-workflow

Conversation

@mashiike

Copy link
Copy Markdown
Contributor

This pull request refactors the project's build and release automation by replacing the legacy Makefile-based workflow with a modern setup using Taskfile.yaml and GoReleaser. It also updates the CI/CD workflows to streamline testing and releasing, and introduces a centralized version management approach.

Build and Release Automation:

  • Removed the legacy Makefile and replaced it with a comprehensive Taskfile.yaml for development tasks, including building, testing, linting, and releasing. (Makefile, Taskfile.yaml) [1] [2]
  • Added a GoReleaser configuration file (.goreleaser.yaml) to standardize multi-platform binary builds and releases. (.goreleaser.yaml)

CI/CD Workflow Updates:

  • Replaced the old release workflow (.github/workflows/release.yaml) with a new workflow (.github/workflows/tagpr.yaml) that uses tagpr and GoReleaser for automated tagging and releasing, and improved permissions management. (.github/workflows/release.yaml, .github/workflows/tagpr.yaml) [1] [2]
  • Updated the test workflow (.github/workflows/test.yaml) to use the new Taskfile.yaml, modernized actions, and improved matrix handling for Go versions. (.github/workflows/test.yaml)

Version Management Improvements:

  • Centralized version information in a new version.go file and updated usage throughout the codebase for consistency. (version.go, cmd/bqin/common.go, cmd/bqin/version.go) [1] [2] [3] [4] [5]
  • Added a .tagpr configuration file to manage release tagging and branching conventions. (.tagpr)

mashiike and others added 2 commits October 29, 2025 16:35
Replace legacy Makefile-based workflow with tagpr + GoReleaser for
automated releases. Add Taskfile for development tasks.

- Add .goreleaser.yaml, Taskfile.yaml, .tagpr
- Add .github/workflows/tagpr.yaml
- Remove Makefile and .github/workflows/release.yaml
- Update test workflow to use go test directly
- Refactor version management to package-level variable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@mashiike
mashiike requested a review from Copilot October 29, 2025 07:37
@mashiike
mashiike merged commit 9835cb9 into master Oct 29, 2025
8 checks passed
@mashiike
mashiike deleted the feature/modanize-releaser-workflow branch October 29, 2025 07:38
@github-actions github-actions Bot mentioned this pull request Oct 29, 2025

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 modernizes the build and release infrastructure by migrating from Makefile to Taskfile and GoReleaser, while also introducing a centralized version management system using tagpr. The version string is moved from a build-time linker flag to a source-controlled constant in version.go.

  • Replaces Makefile with Taskfile.yaml for development tasks
  • Adds GoReleaser configuration for cross-platform releases
  • Centralizes version management in version.go file with tagpr integration
  • Updates GitHub Actions workflows to use modern action versions and the new build system

Reviewed Changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
version.go New file containing the version constant (v0.3.1)
cmd/bqin/version.go Imports and uses centralized Version constant instead of linker flag
cmd/bqin/common.go Updates to use centralized Version constant
Taskfile.yaml New task runner configuration replacing Makefile functionality
Makefile Removed in favor of Taskfile
.tagpr Configuration for automated versioning with tagpr
.goreleaser.yaml Configuration for building and releasing binaries across platforms
.gitignore Adds ignore patterns for GoReleaser and Taskfile artifacts
.github/workflows/test.yaml Updates test workflow with modern action versions and removes Makefile dependency
.github/workflows/tagpr.yaml New workflow for automated versioning and releases
.github/workflows/release.yaml Removed old release workflow replaced by tagpr workflow
Comments suppressed due to low confidence (1)

cmd/bqin/common.go:68

  • Corrected spelling of 'sutdown' to 'shutdown'.
		logger.Infof("sutdown...")

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

Comment thread Taskfile.yaml
sh: date +%Y-%m-%dT%H:%M:%S%z
BINARY: bqin
MAIN_PATH: ./cmd/bqin
LDFLAGS: -s -w -X main.version={{.VERSION}} -X main.buildDate={{.BUILD_DATE}}

Copilot AI Oct 29, 2025

Copy link

Choose a reason for hiding this comment

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

The LDFLAGS references main.version, but the version variable has been removed from cmd/bqin/version.go. This will cause the linker flag to have no effect. Since the version is now sourced from bqin.Version, this linker flag should be removed or the variable should be kept for backward compatibility.

Suggested change
LDFLAGS: -s -w -X main.version={{.VERSION}} -X main.buildDate={{.BUILD_DATE}}
LDFLAGS: -s -w -X main.buildDate={{.BUILD_DATE}}

Copilot uses AI. Check for mistakes.
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