Brave new world of releasing
This commit is contained in:
parent
e3e80d450b
commit
607466dd65
32
.goreleaser.yaml
Normal file
32
.goreleaser.yaml
Normal file
@ -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
|
@ -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/*" );
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user