feat: Very Basic CI/CD Pipeline#4
Merged
Merged
Conversation
Introduces GitHub Actions workflows for release and test automation, and adds a GoReleaser configuration for cross-platform builds and Homebrew support. Also updates root command to use dynamic version, commit, and build date variables for improved release metadata.
Replaces github.com/mattn/go-sqlite3 with modernc.org/sqlite for database operations. Updates GoReleaser config to use CGO_ENABLED=0 for cross-platform builds, removes cross-compilation dependencies from release workflow, and updates dependencies in go.mod and go.sum accordingly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a complete setup for automated testing and release workflows, improves version reporting, and switches the SQLite driver to a more portable alternative. These changes help streamline CI/CD, make builds more reproducible, and prepare the project for broader distribution.
Continuous Integration & Release Automation:
.github/workflows/test.ymlto run build and basic command tests on Ubuntu, macOS, and Windows for every push and pull request tomain..github/workflows/release.ymlto automate releases via GoReleaser when a new tag is pushed, including support for multi-platform builds and publishing to GitHub Releases..goreleaser.ymlwith detailed configuration for multi-OS/arch builds, archive formats, changelog grouping, Homebrew formula, and checksum generation.Build & Versioning Improvements:
cmd/root.goto inject version, commit, and build date into the CLI, and display them in the version output using linker flags from GoReleaser. [1] [2]Dependency & Driver Changes:
github.com/mattn/go-sqlite3withmodernc.org/sqlitefor SQLite database access, improving cross-platform compatibility by removing the CGO dependency. Updated bothgo.modandinternal/storage/db.goaccordingly. [1] [2] [3]