Skip to content

Commit ff1e204

Browse files
committed
ci: add GoReleaser and GitHub Actions release workflow
- .goreleaser.yaml: builds git-explain and git-as bundle - .github/workflows/release.yml: triggers on tag push - Homebrew formulas will be created in HomebrewFormula/ Packages: - git-explain: standalone - git-as: bundles git-id, git-as, gh-as
1 parent feb3635 commit ff1e204

3 files changed

Lines changed: 151 additions & 3 deletions

File tree

.github/workflows/release.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Set up Go
21+
uses: actions/setup-go@v5
22+
with:
23+
go-version-file: go.mod
24+
25+
- name: Run GoReleaser
26+
uses: goreleaser/goreleaser-action@v6
27+
with:
28+
version: latest
29+
args: release --clean
30+
env:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.goreleaser.yaml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
version: 2
2+
3+
builds:
4+
- id: git-explain
5+
main: ./cmd/git-explain
6+
binary: git-explain
7+
goos:
8+
- darwin
9+
- linux
10+
goarch:
11+
- amd64
12+
- arm64
13+
ldflags:
14+
- -s -w -X main.version={{.Version}}
15+
16+
- id: git-id
17+
main: ./cmd/git-id
18+
binary: git-id
19+
goos:
20+
- darwin
21+
- linux
22+
goarch:
23+
- amd64
24+
- arm64
25+
ldflags:
26+
- -s -w -X main.version={{.Version}}
27+
28+
- id: git-as
29+
main: ./cmd/git-as
30+
binary: git-as
31+
goos:
32+
- darwin
33+
- linux
34+
goarch:
35+
- amd64
36+
- arm64
37+
ldflags:
38+
- -s -w -X main.version={{.Version}}
39+
40+
- id: gh-as
41+
main: ./cmd/gh-as
42+
binary: gh-as
43+
goos:
44+
- darwin
45+
- linux
46+
goarch:
47+
- amd64
48+
- arm64
49+
ldflags:
50+
- -s -w -X main.version={{.Version}}
51+
52+
archives:
53+
- id: git-explain
54+
builds:
55+
- git-explain
56+
name_template: "git-explain_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
57+
format: tar.gz
58+
59+
- id: git-as-bundle
60+
builds:
61+
- git-id
62+
- git-as
63+
- gh-as
64+
name_template: "git-as_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
65+
format: tar.gz
66+
67+
checksum:
68+
name_template: 'checksums.txt'
69+
70+
changelog:
71+
sort: asc
72+
filters:
73+
exclude:
74+
- '^docs:'
75+
- '^chore:'
76+
- '^test:'
77+
78+
brews:
79+
- name: git-explain
80+
ids:
81+
- git-explain
82+
repository:
83+
owner: jdevera
84+
name: git-this-bread
85+
branch: main
86+
directory: HomebrewFormula
87+
homepage: https://github.com/jdevera/git-this-bread
88+
description: See your contribution status across git repositories
89+
license: MIT
90+
install: |
91+
bin.install "git-explain"
92+
93+
- name: git-as
94+
ids:
95+
- git-as-bundle
96+
repository:
97+
owner: jdevera
98+
name: git-this-bread
99+
branch: main
100+
directory: HomebrewFormula
101+
homepage: https://github.com/jdevera/git-this-bread
102+
description: Identity switching for git and GitHub CLI
103+
license: MIT
104+
install: |
105+
bin.install "git-id"
106+
bin.install "git-as"
107+
bin.install "gh-as"

AGENTS.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,20 @@ mise run test # unit tests
1010
mise run lint # golangci-lint
1111
```
1212

13-
## Tools
13+
## Packages
1414

15-
- cmd/git-explain — repo status analyzer (see cmd/git-explain/CLAUDE.md)
16-
- cmd/git-id, cmd/git-as, cmd/gh-as — identity switching (see cmd/git-id/CLAUDE.md)
15+
- git-explain — repo status analyzer (see cmd/git-explain/AGENTS.md)
16+
- git-as — identity tools bundle: git-id, git-as, gh-as (see cmd/git-id/AGENTS.md)
17+
18+
## Releases
19+
20+
GoReleaser builds binaries and Homebrew formulas on tag push:
21+
22+
```
23+
git tag v1.0.0 && git push --tags
24+
```
25+
26+
Formulas go to `HomebrewFormula/` in this repo.
1727

1828
## Test Helpers
1929

0 commit comments

Comments
 (0)