closes #130 - CHANGELOG.md file for people who can view changelog from github --- `iris changelog` command: `iris changelog [version]` (e.g. iris changelog v0.5.1) `iris changelog -n 3` (see changelog of 3 latest releaseas) => `iris changelog` looks just like CHANGELOG.md, grouped headers and all. It only stops looking that way if we personally overwrite that release's description with something else => With 1-hour local cache (invalidated on updater-channel change), `--refresh` flag to bypass, graceful fallback to stale cache on GitHub rate-limiting --- - New auto update config ```toml # 0 = off (default, notify only), 1 = auto-install, 2 = always confirm first auto-update = 1 ``` - New just debug-changelog and just debug-autoupdate recipes (fully offline, mocked HTTP servers, no real network/config touched)
113 lines
3.3 KiB
YAML
113 lines
3.3 KiB
YAML
version: 2
|
|
|
|
project_name: iris
|
|
|
|
git:
|
|
# nightly tags share the version stream and can land on the same commit
|
|
# as a stable tag, which would make goreleaser diff the changelog against
|
|
# a nightly instead of the real previous stable release
|
|
ignore_tags:
|
|
- "*-nightly.*"
|
|
# without this, git's default tag sort ranks a same-commit nightly tag
|
|
# above the stable tag, so goreleaser resolves the nightly as the
|
|
# "current tag" and tries to re-upload assets into its release, which
|
|
# already has them and fails with 422 already_exists
|
|
prerelease_suffix: "-nightly"
|
|
|
|
changelog:
|
|
use: git
|
|
sort: asc
|
|
abbrev: 6
|
|
format: "{{ .SHA }} {{ .Message }}"
|
|
filters:
|
|
# these would otherwise fall under the "Bug fixes" group below since
|
|
# they start with `fix`, but they're infra-only and not user-facing
|
|
exclude:
|
|
- "(?i)^fix\\(ci\\)"
|
|
- "(?i)^fix\\(release\\)"
|
|
groups:
|
|
- title: "Features"
|
|
regexp: '(?i)^.*?feat(\(.+\))?!?:.+$'
|
|
order: 0
|
|
- title: "Bug fixes"
|
|
regexp: '(?i)^.*?fix(\(.+\))?!?:.+$'
|
|
order: 1
|
|
- title: "Performance"
|
|
regexp: '(?i)^.*?perf(\(.+\))?!?:.+$'
|
|
order: 2
|
|
- title: "Refactors"
|
|
regexp: '(?i)^.*?refactor(\(.+\))?!?:.+$'
|
|
order: 3
|
|
- title: "Documentation"
|
|
regexp: '(?i)^.*?docs?(\(.+\))?!?:.+$'
|
|
order: 4
|
|
# unmatched types (chore, build, ci, test, ...) are silently dropped
|
|
|
|
builds:
|
|
- env:
|
|
- CGO_ENABLED=0
|
|
goos:
|
|
- linux
|
|
- darwin
|
|
goarch:
|
|
- amd64
|
|
- arm64
|
|
ldflags:
|
|
- -s -w -X github.com/versenilvis/iris/root.Version={{.Version}}
|
|
flags:
|
|
- -trimpath
|
|
main: ./cmd/iris
|
|
binary: iris
|
|
|
|
archives:
|
|
- format: tar.gz
|
|
name_template: >-
|
|
{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}
|
|
|
|
checksum:
|
|
name_template: "checksums.txt"
|
|
algorithm: sha256
|
|
|
|
release:
|
|
extra_files:
|
|
- glob: ./iris-*-vendor.tar.gz
|
|
- glob: ./iris-*-vendor.tar.gz.sha256
|
|
footer: |
|
|
## Update
|
|
```bash
|
|
iris update
|
|
```
|
|
# Homebrew
|
|
brews:
|
|
- repository:
|
|
owner: versenilvis
|
|
name: homebrew-iris
|
|
token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
|
|
directory: Formula
|
|
homepage: "https://github.com/versenilvis/iris"
|
|
description: "A highly customizable, blazing fast and context-aware CLI autocomplete/navigation tool"
|
|
license: "MIT"
|
|
caveats: |
|
|
To completely remove IRIS configurations and shell hooks,
|
|
please run 'iris uninstall' BEFORE removing this package, or manually
|
|
clean up ~/.config/iris and your shell RC files (e.g. ~/.zshrc).
|
|
test: |
|
|
system "#{bin}/iris", "--help"
|
|
|
|
# Debian/RPM
|
|
nfpms:
|
|
- id: iris
|
|
package_name: iris
|
|
vendor: "versenilvis"
|
|
homepage: "https://github.com/versenilvis/iris"
|
|
maintainer: "VERSE <sunnyone0901@gmail.com>"
|
|
description: "A highly customizable, blazing fast and context-aware CLI autocomplete/navigation tool"
|
|
license: "MIT"
|
|
file_name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}"
|
|
scripts:
|
|
preremove: "scripts/prerm.sh"
|
|
formats:
|
|
- deb
|
|
- rpm
|
|
bindir: /usr/bin
|