diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..23f7489 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,32 @@ +version: 2 + +before: + hooks: + - go mod tidy + - go test ./... + +builds: + - env: + - CGO_ENABLED=0 + goos: + - linux + - windows + - darwin + +archives: + - formats: [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 + formats: [zip] + +changelog: + disable: true diff --git a/build_release.pl b/build_release.pl deleted file mode 100755 index 7f0ce25..0000000 --- a/build_release.pl +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -open my $fh, "<", "main.go" || die $!; - -my $version; -while (<$fh>) { - # CurrentVersion: "v0.04" - $version = $1 if /CurrentVersion\s*=\s*"(v[\d\.]+)"/; -} -close $fh; - -die "no version?" unless defined $version; - -# quit if tests fail -system("go test ./...") && die "not building release with failing tests"; - -# so lazy -system "rm", "-rf", "release", "dist"; -system "mkdir", "release"; -system "mkdir", "dist"; - -my %build = ( - win => { env => { GOOS => 'windows', GOARCH => 'amd64' }, filename => 'netgiv.exe' }, - linux => { env => { GOOS => 'linux', GOARCH => 'amd64' }, filename => 'netgiv' }, - mac => { env => { GOOS => 'darwin', GOARCH => 'amd64' }, filename => 'netgiv' }, -); - -foreach my $type (keys %build) { - mkdir "release/$type"; -} - -foreach my $type (keys %build) { - local $ENV{GOOS} = $build{$type}->{env}->{GOOS}; - local $ENV{GOARCH} = $build{$type}->{env}->{GOARCH}; - system "go", "build", "-o", "release/$type/" . $build{$type}->{filename}; - system "zip", "-j", "dist/netgiv-$type-$version.zip", ( glob "release/$type/*" ); -}