1# This is the configuration file for GoReleaser.
2# It defines how your project should be built, packaged, and released.
3# For more information, see: https://goreleaser.com/customization/
4version: 2
5
6# The 'before' hook runs commands before the build process starts.
7before:
8 hooks:
9 # Tidy up the go.mod file to ensure all dependencies are clean.
10 - go mod tidy
11
12# 'builds' defines the matrix of binaries to create.
13builds:
14 - # The main build configuration for your CLI.
15 # The binary name will be 'matcha'.
16 id: "matcha"
17 # The main entrypoint of your application.
18 main: .
19 # The Go compiler to use.
20 goos:
21 - linux
22 - darwin # macOS
23 goarch:
24 - amd64 # Intel
25 - arm64 # Apple Silicon
26 # Environment variables to pass to the Go compiler.
27 env:
28 - CGO_ENABLED=0
29 # Build flags for smaller binaries and reproducible builds.
30 flags:
31 - -trimpath
32 # Linker flags to strip debug information and reduce binary size.
33 ldflags:
34 - -s -w -buildid= -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
35
36# 'archives' defines how to package the built binaries.
37# 'archives' defines how to package the built binaries.
38archives:
39 - # The archive configuration.
40 # This will create .tar.gz files.
41 formats: [tar.gz]
42 # A template for the archive file names.
43 # e.g., matcha_1.2.3_darwin_amd64.tar.gz
44 name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
45 # Files to include in the archive.
46 files:
47 - LICENSE
48
49 - README.md
50
51# 'snapshot' configures how test releases are named when running on non-tagged commits.
52snapshot:
53 version_template: "{{ .Tag }}-next"
54
55# 'checksum' creates a file with SHA256 checksums for all artifacts.
56checksum:
57 name_template: "checksums.txt"
58
59# 'changelog' configures the automatic generation of release notes.
60changelog:
61 # Use 'github-native' to leverage GitHub's release notes API.
62 # This automatically includes contributors and links to PRs/issues.
63 # Categories are configured in .github/release.yml
64 use: github-native
65
66# 'release' configures the GitHub Release creation.
67release:
68 # If set to true, GoReleaser will automatically draft a new release.
69 # Set to false to automatically publish the release.
70 draft: false
71 # If set to true, will mark the release as a pre-release.
72 prerelease: auto
73 # Add a footer to the release notes featuring full changelog.
74 footer: |
75 ---
76 This version is also available on **[Snapcraft](https://snapcraft.io/matcha)**, **Homebrew**, **[Flatpak](https://matcha.floatpane.com/matcha.flatpakref)**!
77
78 View the [installation instructions](https://github.com/floatpane/matcha/blob/master/docs/INSTALLATION.md) for more details.
79
80# 'brews' configures the Homebrew tap integration.
81brews:
82 - # The configuration for your Homebrew tap.
83 # The name of your formula file will be 'matcha.rb'.
84 name: matcha
85 # The GitHub repository for your Homebrew tap.
86 repository:
87 owner: floatpane
88 name: homebrew-matcha
89 # The token to use for pushing to the tap repository.
90 # It uses the secret you'll create in your repository settings.
91 token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
92
93 # The commit author for the tap update.
94 commit_author:
95 name: goreleaserbot
96 email: bot@goreleaser.com
97
98 # A description for your formula.
99 description: "A beautiful and functional email client for your terminal."
100 # The homepage URL for your formula.
101 homepage: "https://matcha.floatpane.com"
102
103 # The dependencies for your formula.
104 # Since it's a pre-compiled binary, there are no runtime dependencies.
105 dependencies: []
106
107 # The test block for your formula.
108 # This command will be run by `brew test matcha`.
109 test: |
110 system "#{bin}/matcha --version"
111
112 # The installation instructions for your formula.
113 # This tells Homebrew to just install the binary.
114 install: |
115 bin.install "matcha"
116
117# 'snapcrafts' configures the Snapcraft integration.
118snapcrafts:
119 - # The configuration for your Snapcraft package.
120 name: matcha
121 publish: true
122 summary: "A beautiful and functional email client for your terminal."
123 description: |
124 A beautiful and functional email client for your terminal, built with Go and the charming Bubble Tea TUI library.
125 Never leave your command line to check your inbox or send an email again!
126 grade: stable
127 confinement: strict
128 license: MIT