Skip to content

Conversation

@EndlessTrax
Copy link
Owner

  • Split lint, format, test into own workflows
  • Add goreleaser config
  • Add new release workflow

@EndlessTrax EndlessTrax added enhancement New feature or request dependencies Pull requests that update a dependency file labels Nov 6, 2025
@EndlessTrax EndlessTrax requested a review from Copilot November 6, 2025 20:18
Copy link

Copilot AI left a comment

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 sets up the release infrastructure for Brokli using GoReleaser and reorganizes CI/CD workflows. The changes enable automated binary releases across multiple platforms (Linux, macOS, Windows) for both amd64 and arm64 architectures, while splitting the monolithic PR checks workflow into separate focused jobs.

  • Added GoReleaser configuration for cross-platform binary builds with version injection support
  • Split pr-checks.yml into separate tests.yml, lint.yml, and format.yml workflows for better modularity
  • Refactored version handling to use a variable that can be set via ldflags at build time
  • Updated golangci-lint configuration to v2 format with cleaner structure

Reviewed Changes

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

Show a summary per file
File Description
.goreleaser.yaml New GoReleaser v2 config defining multi-platform builds, archives, and release automation
.github/workflows/release.yml New workflow to automate releases on version tags with version validation
.github/workflows/tests.yml Extracted unit test job from pr-checks.yml into dedicated workflow
.github/workflows/lint.yml Extracted linting job from pr-checks.yml into dedicated workflow
.github/workflows/format.yml Extracted format check job from pr-checks.yml into dedicated workflow
.github/workflows/pr-checks.yml Removed - functionality split into separate workflows
cmd/root.go Extracted version string to variable for build-time injection via ldflags
pkg/fetcher/fetcher.go Wrapped defer Close() in anonymous function to explicitly ignore error
go.mod Moved fatih/color from indirect to direct dependency
Taskfile.yml Added GoReleaser tasks and pinned golangci-lint version
.golangci.yml Migrated to v2 config format with restructured settings sections
.gitignore Added dist/ directory for GoReleaser output and removed duplicate brokli entry

@EndlessTrax EndlessTrax merged commit 114bd44 into main Nov 6, 2025
3 checks passed
@EndlessTrax EndlessTrax deleted the refactor/cicd branch November 6, 2025 20:53
EndlessTrax added a commit that referenced this pull request Nov 7, 2025
* Update CI/CD workflows
* fix(lint): update golangci-lint config to v2 schema and fix errcheck issue
* fix(goreleaser): update Taskfile to find goreleaser in ~/go/bin; update config to v2
* Updates for version consistency
* ci(lint): use golangci-lint v2.5.0 in CI and pin Taskfile install; keep v2 config
* ci(lint): install golangci-lint using @latest to avoid invalid tag
* Update .github/workflows/release.yml

---------

Co-authored-by: Copilot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants