Skip to content

Commit 74620c8

Browse files
authored
ci: add GoReleaser + CI workflow for cross-platform releases (#5)
1 parent 75b0170 commit 74620c8

File tree

3 files changed

+88
-1
lines changed

3 files changed

+88
-1
lines changed

.github/workflows/release.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: release
2+
on:
3+
push:
4+
tags:
5+
- 'v*'
6+
jobs:
7+
goreleaser:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout code
11+
uses: actions/checkout@v3
12+
- name: Setup Go
13+
uses: actions/setup-go@v4
14+
with:
15+
go-version: 1.22.x
16+
- name: Run GoReleaser
17+
uses: goreleaser/goreleaser-action@v5
18+
with:
19+
version: 2.9.0
20+
args: release --clean
21+
env:
22+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,6 @@ go.work.sum
3333
brainstorm
3434
.idea
3535
bin
36-
.DS_Store
36+
.DS_Store
37+
# Added by goreleaser init:
38+
dist/

.goreleaser.yaml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
version: 2
2+
project_name: lazyssh
3+
4+
before:
5+
hooks:
6+
- go mod tidy
7+
8+
builds:
9+
- goos:
10+
- linux
11+
- windows
12+
- darwin
13+
goarch:
14+
- amd64
15+
- arm
16+
- arm64
17+
- 386
18+
main: ./cmd/main.go
19+
ldflags:
20+
-X main.version={{.Version}} -X main.gitCommit={{.Commit}} -X main.buildTime={{.Date}}
21+
22+
23+
24+
archives:
25+
- formats: [ tar.gz ]
26+
# this name template makes the OS and Arch compatible with the results of `uname`.
27+
name_template: >-
28+
{{ .ProjectName }}_
29+
{{- title .Os }}_
30+
{{- if eq .Arch "amd64" }}x86_64
31+
{{- else if eq .Arch "386" }}i386
32+
{{- else }}{{ .Arch }}{{ end }}
33+
{{- if .Arm }}v{{ .Arm }}{{ end }}
34+
# use zip for windows archives
35+
format_overrides:
36+
- goos: windows
37+
formats: [ zip ]
38+
39+
checksum:
40+
name_template: "checksums.txt"
41+
42+
snapshot:
43+
name_template: "{{ .Tag }}-next"
44+
45+
changelog:
46+
sort: asc
47+
filters:
48+
exclude:
49+
- "^docs:"
50+
- "^test:"
51+
brews:
52+
- repository:
53+
owner: adembc
54+
name: homebrew-tap
55+
homepage: "https://github.com/adembc/lazyssh"
56+
description: "A simple terminal UI for managing SSH connections. "
57+
58+
release:
59+
footer: >-
60+
61+
---
62+
63+
Released by [GoReleaser](https://github.com/goreleaser/goreleaser).

0 commit comments

Comments
 (0)