Browse Source

set up goreleaser

Mike 2 years ago
parent
commit
92f04a591c
3 changed files with 57 additions and 0 deletions
  1. 2 0
      .gitignore
  2. 39 0
      .goreleaser.yaml
  3. 16 0
      Makefile

+ 2 - 0
.gitignore

@@ -1,2 +1,4 @@
 .idea/
 *.db
+
+dist/

+ 39 - 0
.goreleaser.yaml

@@ -0,0 +1,39 @@
+version: 1
+
+before:
+  hooks:
+    - go mod tidy
+
+builds:
+  - id: retro_aim_server
+    goos:
+      - darwin
+      - linux
+      - windows
+    goarch:
+      - amd64
+      - arm64
+    main: ./cmd
+    ignore:
+      - goos: linux
+        goarch: arm64
+      - goos: windows
+        goarch: arm64
+    env:
+      - CGO_ENABLED=1
+      - >-
+        {{- if eq .Os "darwin" }}
+          {{- if eq .Arch "amd64"}}CC=o64-clang{{- end }}
+          {{- if eq .Arch "arm64"}}CC=oa64-clang{{- end }}
+        {{- end }}
+        {{- if eq .Os "linux" }}CC=x86_64-linux-gnu-gcc{{- end }}
+        {{- if eq .Os "windows" }}CC=x86_64-w64-mingw32-gcc{{- end }}
+
+archives:
+  - format: binary
+    name_template: >-
+      {{ .ProjectName }}.{{ .Version }}.
+      {{- if eq .Os "darwin"}}mac
+      {{- else }}{{ .Os }}{{ end }}.
+      {{- if eq .Arch "amd64" }}x86_64
+      {{- else }}{{ .Arch }}{{ end }}

+ 16 - 0
Makefile

@@ -0,0 +1,16 @@
+GO_RELEASER_VERSION := v1.21.5
+DOCKER_RUN := @docker run \
+	--rm \
+	-e CGO_ENABLED=1 \
+	-e GITHUB_TOKEN=$(GITHUB_TOKEN) \
+	-v `pwd`:/go/src/retro-aim-server \
+	-w /go/src/retro-aim-server \
+	ghcr.io/goreleaser/goreleaser-cross:$(GO_RELEASER_VERSION)
+
+.PHONY: release
+release:
+	$(DOCKER_RUN) --clean
+
+.PHONY: release-dry-run
+release-dry-run:
+	$(DOCKER_RUN) --clean --skip=validate --skip=publish