Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a goreleaser.yml and directions for making a release in RELEASE.md #510

Merged
merged 6 commits into from
Jan 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
*.iml
*.code-workspace
/zdns
*.log
*.log# Added by goreleaser init:
dist/
52 changes: 52 additions & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com

# The lines below are called `modelines`. See `:help modeline`
# Feel free to remove those if you don't want/need to use them.
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
# vim: set ts=2 sw=2 tw=0 fo=cnqoj

version: 2

before:
hooks:
# You may remove this if you don't use go modules.
- go mod tidy
# you may remove this if you don't need go generate
- go generate ./...

builds:
- env:
- CGO_ENABLED=0
goos:
- linux
- darwin

archives:
- format: tar.gz
# this name template makes the OS and Arch compatible with the results of `uname`.
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
# use zip for windows archives
format_overrides:
- goos: windows
format: zip

changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"

release:
footer: >-

---

Released by [GoReleaser](https://github.com/goreleaser/goreleaser).
32 changes: 32 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Releasing a New Version of ZDNS
We use [goreleaser](https://goreleaser.com) to release new versions of ZDNS. To release a new version, follow these steps:

0. Install `goreleaser`:
```shell
brew install goreleaser/tap/goreleaser
```

1. Create a new tag and push to GH:
```shell
git tag -a vA.B.C -m "Release A.B.C"
```

2. Test the release:
```shell
goreleaser release --skip-publish --clean
```

3. Set GitHub Token (at least configured with `write:packages`)
```shell
export GITHUB_TOKEN="YOUR_GH_TOKEN"
```
4. Push Tag to Github
Be sure that this tagged commit is what you want to tag. Once you push you shouldn't delete the tagged version.
```shell
git push origin vA.B.C
```
5. Release!
```shell
goreleaser release --clean
```
6. Update the [Release Notes](https://github.com/zmap/zdns/releases) with a description of your changes
Loading