Skip to content

Commit 80ab8ee

Browse files
committed
blds: update build for go1.18
migrate from glide to go mod switch from travis to circleci remove homebrew formula build using goreleaser instead of bash
1 parent da6a7ea commit 80ab8ee

File tree

13 files changed

+481
-250
lines changed

13 files changed

+481
-250
lines changed

.circleci/config.yml

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# Golang CircleCi config v1.18.1
2+
version: 2
3+
jobs:
4+
build-deps:
5+
docker:
6+
- image: gesquive/go-builder:latest
7+
steps:
8+
- run: cci-clone
9+
- restore_cache:
10+
keys:
11+
- go-mod-v1-{{ checksum "go.sum" }}
12+
- run: make deps
13+
- save_cache:
14+
key: go-mod-v1-{{ checksum "go.sum" }}
15+
paths:
16+
- "{{ .Environment.GOPATH }}/vendor/go/pkg/mod"
17+
18+
test-app:
19+
docker:
20+
- image: gesquive/go-builder:latest
21+
steps:
22+
- run: cci-clone
23+
- restore_cache:
24+
keys:
25+
- go-mod-v1-{{ checksum "go.sum" }}
26+
- run: make
27+
- run: make test
28+
29+
coverage:
30+
docker:
31+
- image: gesquive/go-builder:latest
32+
steps:
33+
- run: cci-clone
34+
- restore_cache:
35+
keys:
36+
- go-mod-v1-{{ checksum "go.sum" }}
37+
- run: make coverage-report
38+
- store_artifacts:
39+
path: coverage
40+
- run: codecov-bash -f coverage/coverage.dat
41+
42+
release-app-snapshot:
43+
docker:
44+
- image: gesquive/go-builder:latest
45+
steps:
46+
- run: cci-clone
47+
- run: make release-snapshot
48+
- save_cache:
49+
key: go-snap-v1-{{ .Environment.CIRCLE_SHA1 }}
50+
paths:
51+
- dist
52+
53+
release-app-build:
54+
docker:
55+
- image: gesquive/go-builder:latest
56+
steps:
57+
- run: cci-clone
58+
- run: make release
59+
- save_cache:
60+
key: go-dist-v1-{{ .Environment.CIRCLE_SHA1 }}
61+
paths:
62+
- dist
63+
64+
release-docker-snapshot:
65+
docker:
66+
- image: gesquive/docker-builder:latest
67+
steps:
68+
- run: cci-clone
69+
- restore_cache:
70+
keys:
71+
- go-snap-v1-{{ .Environment.CIRCLE_SHA1 }}
72+
- setup_remote_docker:
73+
version: 19.03.13
74+
- run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN $DOCKER_REGISTRY
75+
- run: docker info
76+
- run: docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
77+
- run: make release-docker-snapshot
78+
79+
release-docker-build:
80+
docker:
81+
- image: gesquive/docker-builder:latest
82+
steps:
83+
- run: cci-clone
84+
- restore_cache:
85+
keys:
86+
- go-dist-v1-{{ .Environment.CIRCLE_SHA1 }}
87+
- setup_remote_docker:
88+
version: 19.03.13
89+
- run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN $DOCKER_REGISTRY
90+
- run: docker info
91+
- run: docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
92+
- run: make release-docker
93+
94+
95+
workflows:
96+
version: 2
97+
go-build:
98+
jobs:
99+
- build-deps:
100+
filters:
101+
tags:
102+
only: /.*/
103+
- test-app:
104+
requires:
105+
- build-deps
106+
- coverage:
107+
requires:
108+
- build-deps
109+
- release-app-snapshot:
110+
requires:
111+
- build-deps
112+
filters:
113+
tags:
114+
ignore: /^v.*/
115+
- release-app-build:
116+
context: github-deploy
117+
requires:
118+
- build-deps
119+
filters:
120+
branches:
121+
ignore: /.*/
122+
tags:
123+
only: /^v.*/
124+
ignore: /.*/
125+
- release-docker-snapshot:
126+
context: docker-deploy
127+
requires:
128+
- release-app-snapshot
129+
filters:
130+
tags:
131+
ignore: /^v.*/
132+
- release-docker-build:
133+
context: docker-deploy
134+
requires:
135+
- release-app-build
136+
filters:
137+
branches:
138+
ignore: /.*/
139+
tags:
140+
only: /^v.*/
141+
ignore: /.*/

.goreleaser.yml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
before:
2+
hooks:
3+
- go mod tidy
4+
5+
builds:
6+
- env:
7+
- CGO_ENABLED=0
8+
ldflags:
9+
- -s -w -X main.buildVersion={{.Version}} -X main.buildCommit={{.ShortCommit}} -X main.buildDate={{.Date}}
10+
goos:
11+
- linux
12+
- darwin
13+
- windows
14+
goarch:
15+
- 386
16+
- amd64
17+
- arm
18+
- arm64
19+
goarm: [6,7]
20+
ignore:
21+
- goos: darwin
22+
goarch: 386
23+
- goos: darwin
24+
goarch: arm
25+
26+
snapshot:
27+
# Allows you to change the name of the generated snapshot
28+
# Default is `SNAPSHOT-{{.ShortCommit}}`.
29+
name_template: '{{ .Version }}+{{.ShortCommit}}'
30+
31+
archives:
32+
- name_template: "{{ .ProjectName }}_v{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
33+
replacements:
34+
386: i386
35+
amd64: x86_64
36+
format_overrides:
37+
- goos: windows
38+
format: zip
39+
files:
40+
- LICENSE*
41+
- README*
42+
- CHANGELOG*
43+
- docs/manpages/*
44+
45+
checksum:
46+
name_template: '{{ .ProjectName }}_{{ .Version }}_checksums.txt'
47+
algorithm: sha256
48+
49+
changelog:
50+
skip: true
51+
sort: asc
52+
filters:
53+
exclude:
54+
- '^docs:'
55+
- '^test:'
56+
- '^blds:'
57+
58+
release:
59+
# If set to true, will not auto-publish the release.
60+
draft: false
61+
62+
# If set to auto, will mark the release as not ready for production
63+
# in case there is an indicator for this in the tag e.g. v1.0.0-rc1
64+
# If set to true, will mark the release as not ready for production.
65+
prerelease: auto
66+
67+
# You can change the name of the GitHub release.
68+
name_template: "{{.Tag}}"
69+
70+
brews:
71+
-
72+
# Github repository to push the tap to.
73+
tap:
74+
owner: gesquive
75+
name: homebrew-tap
76+
77+
# Git author used to commit to the repository.
78+
# Defaults are shown.
79+
commit_author:
80+
name: release-bot
81+
email: gesquive@gmail.com
82+
83+
# Folder inside the repository to put the formula.
84+
# Default is the root folder.
85+
folder: Formula
86+
87+
# Caveats for the user of your binary.
88+
# Default is empty.
89+
caveats: ""
90+
91+
# Your app's homepage.
92+
# Default is empty.
93+
homepage: "https://github.com/gesquive/git-user"
94+
95+
# Your app's description.
96+
# Default is empty.
97+
description: "lets you quickly switch between multiple git user profiles"
98+
99+
# If set to auto, the release will not be uploaded to the homebrew tap
100+
# in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1
101+
skip_upload: auto
102+
103+
# Packages your package depends on.
104+
dependencies:
105+
- git
106+
107+
# Packages that conflict with your package.
108+
conflicts: []
109+
110+
# Custom install script for brew.
111+
# Default is 'bin.install "program"'.
112+
install: |
113+
bin.install "git-user"
114+
man.mkpath
115+
man1.install "docs/manpages/git-user.1", "docs/manpages/git-user-add.1", "docs/manpages/git-user-del.1", "docs/manpages/git-user-edit.1", "docs/manpages/git-user-list.1", "docs/manpages/git-user-rm.1", "docs/manpages/git-user-set.1"

.travis.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

HomebrewFormula

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)