mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-11-10 09:12:47 +08:00
f83c8162ba
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
206 lines
6.9 KiB
YAML
206 lines
6.9 KiB
YAML
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
|
|
project_name: dnscontrol
|
|
version: 2
|
|
builds:
|
|
-
|
|
id: build
|
|
env:
|
|
- CGO_ENABLED=0
|
|
- GO111MODULE=on
|
|
goos:
|
|
- linux
|
|
- windows
|
|
- darwin
|
|
- freebsd
|
|
# List of combinations of GOOS + GOARCH + GOARM to ignore.
|
|
ignore:
|
|
- goos: linux
|
|
goarch: "386"
|
|
- goos: windows
|
|
goarch: "386"
|
|
- goos: freebsd
|
|
goarch: "386"
|
|
ldflags:
|
|
- -linkmode=internal -s -w
|
|
- -X main.version={{ .Version }}
|
|
before:
|
|
hooks:
|
|
- go fmt ./...
|
|
- go mod tidy
|
|
- go generate ./...
|
|
changelog:
|
|
sort: asc
|
|
use: github
|
|
groups:
|
|
- title: 'Breaking changes:'
|
|
regexp: "(?i)^.*breaking[(\\w)]*:+.*$"
|
|
order: 0
|
|
- title: 'Major features:'
|
|
regexp: "(?i)^.*(major|new provider|feature)[(\\w)]*:+.*$"
|
|
order: 1
|
|
- title: 'Provider-specific changes:'
|
|
regexp: "(?i)((akamaiedge|autodns|axfrd|azure|azure_private_dns|bind|bunnydns|cloudflare|cloudflareapi_old|cloudns|cscglobal|desec|digitalocean|dnsimple|dnsmadeeasy|doh|domainnameshop|dynadot|easyname|exoscale|gandi|gcloud|gcore|hedns|hetzner|hexonet|hostingde|huaweicloud|inwx|linode|loopia|luadns|msdns|mythicbeasts|namecheap|namedotcom|netcup|netlify|ns1|opensrs|oracle|ovh|packetframe|porkbun|powerdns|realtimeregister|route53|rwth|softlayer|transip|vultr).*:)+.*"
|
|
order: 2
|
|
- title: 'Documentation:'
|
|
regexp: "(?i)^.*(docs)[(\\w)]*:+.*$"
|
|
order: 3
|
|
- title: 'CI/CD:'
|
|
regexp: "(?i)^.*(build|ci|cicd)[(\\w)]*:+.*$"
|
|
order: 4
|
|
- title: 'Dependencies:'
|
|
regexp: "(?i)^.*Build\\(deps\\)*:+.*$|(?i)^.*update deps+.*$"
|
|
order: 5
|
|
- title: 'Other changes and improvements:'
|
|
order: 9
|
|
- title: 'Deprecation warnings:'
|
|
regexp: "(?i)^.*Deprecate[(\\w)]*:+.*$"
|
|
order: 10
|
|
filters:
|
|
exclude:
|
|
- '^test:'
|
|
- Merge pull request
|
|
- Merge branch
|
|
archives:
|
|
- format_overrides:
|
|
- goos: windows
|
|
format: zip
|
|
universal_binaries:
|
|
-
|
|
replace: true
|
|
id: build
|
|
|
|
nfpms:
|
|
- id: packages_rpm
|
|
file_name_template: >-
|
|
{{ .ProjectName }}-
|
|
{{- .Version }}.
|
|
{{- if eq .Arch "386" }}i386
|
|
{{- else if eq .Arch "amd64" }}x86_64
|
|
{{- else }}{{ .Arch }}{{ end }}
|
|
homepage: https://docs.dnscontrol.org/
|
|
description: "DNSControl: Infrastructure as Code for DNS Zones"
|
|
maintainer: 'Tom Limoncelli <tlimoncelli@stackoverflow.com>'
|
|
license: MIT
|
|
formats:
|
|
- rpm
|
|
- id: packages_deb
|
|
file_name_template: >-
|
|
{{ .ProjectName }}-
|
|
{{- .Version }}.
|
|
{{- if eq .Arch "386" }}i386
|
|
{{- else }}{{ .Arch }}{{ end }}
|
|
homepage: https://docs.dnscontrol.org/
|
|
description: "DNSControl: Infrastructure as Code for DNS Zones"
|
|
maintainer: 'Tom Limoncelli <tlimoncelli@stackoverflow.com>'
|
|
license: MIT
|
|
formats:
|
|
- deb
|
|
dockers:
|
|
- image_templates:
|
|
- &amd_image "stackexchange/{{.ProjectName}}:{{ .Version }}-amd64"
|
|
- &amd_image_ghcr "ghcr.io/stackexchange/{{.ProjectName}}:{{ .Version }}-amd64"
|
|
goos: linux
|
|
goarch: amd64
|
|
use: buildx
|
|
ids:
|
|
- build
|
|
build_flag_templates:
|
|
- "--pull"
|
|
- "--platform=linux/amd64"
|
|
- "--label=org.opencontainers.image.created={{ .Date }}"
|
|
- "--label=org.opencontainers.image.name={{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
|
|
- "--label=org.opencontainers.image.version={{ .Version }}"
|
|
- "--label=org.opencontainers.image.source={{ .GitURL }}"
|
|
- image_templates:
|
|
- &arm_image "stackexchange/{{.ProjectName}}:{{ .Version }}-arm64"
|
|
- &arm_image_ghcr "ghcr.io/stackexchange/{{.ProjectName}}:{{ .Version }}-arm64"
|
|
goos: linux
|
|
goarch: arm64
|
|
use: buildx
|
|
ids:
|
|
- build
|
|
build_flag_templates:
|
|
- "--pull"
|
|
- "--platform=linux/arm64"
|
|
- "--label=org.opencontainers.image.created={{ .Date }}"
|
|
- "--label=org.opencontainers.image.name={{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{ .FullCommit }}"
|
|
- "--label=org.opencontainers.image.version={{ .Version }}"
|
|
- "--label=org.opencontainers.image.source={{ .GitURL }}"
|
|
docker_manifests:
|
|
- name_template: "stackexchange/{{.ProjectName}}:{{ .Version }}"
|
|
image_templates:
|
|
- *amd_image
|
|
- *arm_image
|
|
- name_template: "ghcr.io/stackexchange/{{.ProjectName}}:{{ .Version }}"
|
|
image_templates:
|
|
- *amd_image_ghcr
|
|
- *arm_image_ghcr
|
|
- name_template: "stackexchange/{{.ProjectName}}:latest"
|
|
skip_push: auto
|
|
image_templates:
|
|
- *amd_image
|
|
- *arm_image
|
|
- name_template: "ghcr.io/stackexchange/{{.ProjectName}}:latest"
|
|
skip_push: auto
|
|
image_templates:
|
|
- *amd_image_ghcr
|
|
- *arm_image_ghcr
|
|
checksum:
|
|
name_template: 'checksums.txt'
|
|
snapshot:
|
|
name_template: "{{ incpatch .Version }}-next"
|
|
|
|
release:
|
|
draft: true
|
|
prerelease: auto
|
|
mode: append
|
|
footer: |
|
|
## Deprecation warnings
|
|
|
|
> [!WARNING]
|
|
> - **REV() will switch from RFC2317 to RFC4183 in v5.0.** This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
|
|
> - **MSDNS maintainer needed!** Without a new volunteer, this DNS provider will lose support after April 2025. See https://github.com/StackExchange/dnscontrol/issues/2878
|
|
> - **NAMEDOTCOM and SOFTLAYER need maintainers!** These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes.
|
|
> - **get-certs/ACME support is frozen and will be removed without notice between now and July 2025.** It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in [issues/1400](https://github.com/StackExchange/dnscontrol/issues/1400)
|
|
|
|
## Install
|
|
|
|
#### macOS and Linux
|
|
|
|
##### Install with [Homebrew](https://brew.sh) (recommended)
|
|
|
|
```shell
|
|
brew install dnscontrol
|
|
```
|
|
|
|
##### Using with [Docker](https://www.docker.com)
|
|
|
|
You can use the Docker image from [Docker hub](https://hub.docker.com/r/stackexchange/dnscontrol/) or [GitHub Container Registry](https://github.com/stackexchange/dnscontrol/pkgs/container/dnscontrol).
|
|
|
|
```shell
|
|
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
|
|
```
|
|
|
|
#### Anywhere else
|
|
|
|
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
|
|
|
|
Or, if you have Go installed, you can install the latest version of DNSControl with the following command:
|
|
|
|
```shell
|
|
go install github.com/StackExchange/dnscontrol/v4@main
|
|
```
|
|
|
|
## Update
|
|
|
|
Update to the latest version depends on how you choose to install `dnscontrol` on your machine.
|
|
|
|
#### Update with [Homebrew](https://brew.sh)
|
|
|
|
```shell
|
|
brew upgrade dnscontrol
|
|
```
|
|
|
|
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.
|