From 58f3c2f36e57cc429efb7f94d57a390d8ab4b492 Mon Sep 17 00:00:00 2001 From: Evan Fiordeliso Date: Sat, 12 Aug 2023 13:50:49 -0400 Subject: [PATCH] Add goreleaser for releasing to gitea but not docker containers --- .goreleaser.yaml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ devenv.nix | 7 +++++ 2 files changed, 74 insertions(+) create mode 100644 .goreleaser.yaml diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..bc29d88 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,67 @@ +--- +project_name: ytdl-web +env: + - BASE_PKG=go.fifitido.net/ytdl-web +gitea_urls: + api: https://git.fifitido.net/api/v1 + download: https://git.fifitido.net +before: + hooks: + - tidy +builds: + - id: ytdl-web_linux + env: + - CGO_ENABLED=0 + goos: + - linux + goarch: + - amd64 + - arm64 + - arm + goarm: + - "7" + - "6" + ldflags: + - -X {{ .Env.BASE_PKG }}/version.Version={{.Version}} + - -X {{ .Env.BASE_PKG }}/version.Build={{.ShortCommit}} + - -X {{ .Env.BASE_PKG }}/version.BuildDate={{.Date}} + - -X {{ .Env.BASE_PKG }}/version.BuiltBy=goreleaser + - env: + - CGO_ENABLED=0 + goos: + - windows + - darwin + ldflags: + - -X {{ .Env.BASE_PKG }}/version.Version={{.Version}} + - -X {{ .Env.BASE_PKG }}/version.Build={{.ShortCommit}} + - -X {{ .Env.BASE_PKG }}/version.BuildDate={{.Date}} + - -X {{ .Env.BASE_PKG }}/version.BuiltBy=goreleaser +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 +checksum: + name_template: checksums.txt +snapshot: + name_template: "{{ incpatch .Version }}-next" +changelog: + sort: asc + filters: + exclude: + - "^docs:" + - "^test:" +# The lines beneath this are called `modelines`. See `:help modeline` +# Feel free to remove those if you don't want/use them. +# yaml-language-server: $schema=https://goreleaser.com/static/schema.json +# vim: set ts=2 sw=2 tw=0 fo=cnqoj diff --git a/devenv.nix b/devenv.nix index 2ba0719..2f72eaf 100644 --- a/devenv.nix +++ b/devenv.nix @@ -16,6 +16,7 @@ packages = with pkgs; [ git air + goreleaser docker docker-compose buildkit @@ -26,6 +27,7 @@ # https://devenv.sh/scripts/ scripts.deps.exec = "go mod download"; scripts.tidy.exec = "go mod tidy"; + scripts.check.exec = "goreleaser check"; scripts.build-id.exec = "git rev-parse --short HEAD"; scripts.build-date.exec = "date -Iseconds"; @@ -42,6 +44,10 @@ rm -rf ./dist/ ./out/ ./tmp/ go clean ''; + scripts.release.exec = '' + clean + goreleaser release + ''; scripts.lint.exec = "trunk check"; scripts.fmt.exec = "trunk fmt"; @@ -76,6 +82,7 @@ enterShell = '' echo "Welcome to the $NAME development environment." echo -n "Golang version: $(go version | cut -d ' ' -f 3), " + echo -n "Goreleaser version: $(goreleaser --version | tail -n 9 | head -n 1 | cut -c 16-), " echo -n "Docker CLI version: $(docker version -f {{.Client.Version}}), " echo -n "Buildx version: $(docker buildx version | cut -d ' ' -f 2), " echo "yt-dlp version: $(yt-dlp --version)"