Extend goreleaser build targets

This commit is contained in:
Jerry Jacobs 2024-07-26 21:05:11 +02:00
parent 394a519b96
commit c75074777c
3 changed files with 25 additions and 11 deletions

View File

@ -51,8 +51,8 @@ jobs:
path: | path: |
dist dist
release-dll: goreleaser:
name: Build release DLL name: Build releases with goreleaser
environment: prod environment: prod
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -83,7 +83,7 @@ jobs:
filename: "ssh_private_key" filename: "ssh_private_key"
working-directory: "./resources" working-directory: "./resources"
- name: Run GoReleaser to build release DLL - name: Run GoReleaser to build releases
uses: goreleaser/goreleaser-action@v6 uses: goreleaser/goreleaser-action@v6
with: with:
# either 'goreleaser' (default) or 'goreleaser-pro' # either 'goreleaser' (default) or 'goreleaser-pro'

View File

@ -16,7 +16,7 @@ before:
- go generate ./... - go generate ./...
builds: builds:
- id: "dll" - id: "win-amd64-dll-release"
env: env:
- CGO_ENABLED=1 - CGO_ENABLED=1
- CC=x86_64-w64-mingw32-gcc - CC=x86_64-w64-mingw32-gcc
@ -33,6 +33,20 @@ builds:
- release - release
- dll - dll
- id: "release"
env:
- CGO_ENABLED=0
goos:
- darwin
- linux
- windows
goarch:
- amd64
- arm64
gobinary: "scripts/garble-literals.sh"
tags:
- release
archives: archives:
- format: tar.gz - format: tar.gz
# this name template makes the OS and Arch compatible with the results of `uname`. # this name template makes the OS and Arch compatible with the results of `uname`.

View File

@ -1,5 +1,6 @@
SOURCES=Makefile main.go main_release.go main_debug.go config.go config_release.go config_template.go SOURCES=Makefile main.go main_release.go main_debug.go config.go config_release.go config_template.go
GARBLE_BIN = $(shell go env GOPATH)/bin/garble -literals GARBLE_BIN = $(shell go env GOPATH)/bin/garble
GARBLE_CMD = $(GARBLE_BIN) -literals
all: socks5-ssh-proxy all: socks5-ssh-proxy
@ -14,14 +15,13 @@ test-release: socks5-ssh-proxy.release
./socks5-ssh-proxy.release ./socks5-ssh-proxy.release
socks5-ssh-proxy: $(SOURCES) socks5-ssh-proxy: $(SOURCES)
go build -o $@ go build -o $@
socks5-ssh-proxy.release: resources $(SOURCES) socks5-ssh-proxy.release: resources $(SOURCES) $(GARBLE_BIN)
GOOS=darwin GOARCH=amd64 $(GO_ENV_VARS) go build -tags release -o $@ GOOS=darwin GOARCH=amd64 $(GARBLE_CMD) build -tags release -o $@
upx $@ upx $@
win: socks5-ssh-proxy.exe win: socks5-ssh-proxy.exe
socks5-ssh-proxy.exe: resources $(SOURCES) socks5-ssh-proxy.exe: resources $(GARBLE_BIN) $(SOURCES)
GOOS=windows GOARCH=amd64 $(GARBLE_BIN) build -ldflags -H=windowsgui -tags release -o $@ GOOS=windows GOARCH=amd64 $(GARBLE_CMD) build -ldflags -H=windowsgui -tags release -o $@
dll: resources goreleaser: resources $(GARBLE_BIN)
rm -Rf dist
goreleaser build --snapshot goreleaser build --snapshot
win-package: ChromeProxyHelperPlugin.zip win-package: ChromeProxyHelperPlugin.zip
ChromeProxyHelperPlugin.zip: socks5-ssh-proxy.exe ChromeProxyHelperPlugin.zip: socks5-ssh-proxy.exe