File tree Expand file tree Collapse file tree 6 files changed +218
-5
lines changed
Expand file tree Collapse file tree 6 files changed +218
-5
lines changed Original file line number Diff line number Diff line change 11# This workflow will build a golang project
22# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
33
4- name : Go
4+ name : Build
55
66on :
77 push :
@@ -21,11 +21,11 @@ jobs:
2121 with :
2222 go-version : ' 1.23'
2323
24- - name : Install keepassxc-cli
25- run : sudo apt-get update && sudo apt-get install -y keepassxc
24+ # - name: Install keepassxc-cli
25+ # run: sudo apt-get update && sudo apt-get install -y keepassxc
2626
2727 - name : Build
2828 run : go build
2929
30- - name : Test
31- run : go test ./...
30+ # - name: Test
31+ # run: go test ./...
Original file line number Diff line number Diff line change 1+ # This workflow will build a golang project and create releases
2+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
3+
4+ name : Release
5+
6+ on :
7+ push :
8+ tags :
9+ - ' v*'
10+
11+ jobs :
12+ build :
13+ runs-on : ubuntu-latest
14+ steps :
15+ - uses : actions/checkout@v4
16+ with :
17+ fetch-depth : 0
18+ fetch-tags : true
19+ - name : Set up Go
20+ uses : actions/setup-go@v4
21+ with :
22+ go-version : ' 1.23'
23+
24+ # - name: Install keepassxc-cli
25+ # run: sudo apt-get update && sudo apt-get install -y keepassxc
26+
27+ - name : Build
28+ run : go build
29+
30+ # - name: Test
31+ # run: go test ./...
32+
33+ release :
34+ needs : build
35+ runs-on : ubuntu-latest
36+ steps :
37+ - uses : actions/checkout@v4
38+ with :
39+ fetch-depth : 0
40+ fetch-tags : true
41+ - name : Set up Go
42+ uses : actions/setup-go@v4
43+ with :
44+ go-version : ' 1.23'
45+ - name : Run GoReleaser
46+ uses : goreleaser/goreleaser-action@v5
47+ with :
48+ distribution : goreleaser
49+ version : latest
50+ args : release --clean
51+ env :
52+ GITHUB_TOKEN : ${{ secrets.CTRESTCLIENTSRC_RELEASE_TOKEN }}
Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ go.work.sum
3333local /
3434export /
3535bin /
36+ dist /
3637test /
3738
3839# Build results in project root
Original file line number Diff line number Diff line change 1+ project_name : ctRestClient
2+ builds :
3+ - id : linux-amd64
4+ main : ./main.go
5+ binary : ctRestClient-linux-amd64
6+ goos :
7+ - linux
8+ goarch :
9+ - amd64
10+ ldflags :
11+ - -s -w
12+ - id : darwin-amd64
13+ main : ./main.go
14+ binary : ctRestClient-darwin-amd64
15+ goos :
16+ - darwin
17+ goarch :
18+ - amd64
19+ ldflags :
20+ - -s -w
21+ - id : darwin-arm64
22+ main : ./main.go
23+ binary : ctRestClient-darwin-arm64
24+ goos :
25+ - darwin
26+ goarch :
27+ - arm64
28+ ldflags :
29+ - -s -w
30+ - id : windows-amd64
31+ main : ./main.go
32+ binary : ctRestClient-windows-amd64
33+ goos :
34+ - windows
35+ goarch :
36+ - amd64
37+ ldflags :
38+ - -s -w
39+ archives :
40+ - format : tar.gz
41+ name_template : >-
42+ {{ .ProjectName }}_
43+ {{- .Os }}_
44+ {{- if eq .Arch "amd64" }}x86_64
45+ {{- else }}{{ .Arch }}{{ end }}
46+ {{- if .Arm }}v{{ .Arm }}{{ end }}
47+ files :
48+ - src : LICENSE*
49+ - src : " !README*"
50+ checksum :
51+ name_template : ' checksums.txt'
52+ snapshot :
53+ name_template : " {{ incpatch .Version }}-next"
54+ changelog :
55+ sort : asc
56+ use : github
57+ groups :
58+ - title : Features
59+ regexp : ' ^.*?feat(\([[:word:]]+\))??!?:.+$'
60+ order : 0
61+ - title : Bug Fixes
62+ regexp : ' ^.*?fix(\([[:word:]]+\))??!?:.+$'
63+ order : 1
64+ - title : Performance Improvements
65+ regexp : ' ^.*?perf(\([[:word:]]+\))??!?:.+$'
66+ order : 2
67+ filters :
68+ exclude :
69+ - ' ^docs:'
70+ - ' ^test:'
71+ - ' ^chore:'
72+ - ' ^ci:'
73+ - ' ^build:'
74+ - ' ^style:'
75+ - ' ^refactor:'
76+ - Merge pull request
77+ - Merge branch
78+ release :
79+ github :
80+ owner : mvach
81+ name : ctRestClientSrc
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # Local release script for ctRestClient
4+ # This script runs GoReleaser in snapshot mode to test the release locally
5+ # Usage: ./scripts/local_release.sh
6+
7+ set -e
8+
9+ echo " Running local release test..."
10+
11+ # Check if GoReleaser is installed
12+ GORELEASER_PATH=" "
13+ if command -v goreleaser & > /dev/null; then
14+ GORELEASER_PATH=" goreleaser"
15+ elif [ -f " /home/matthias/.asdf/installs/golang/1.24.4/bin/goreleaser" ]; then
16+ GORELEASER_PATH=" /home/matthias/.asdf/installs/golang/1.24.4/bin/goreleaser"
17+ else
18+ echo " GoReleaser not found. Installing..."
19+ go install github.com/goreleaser/goreleaser@latest
20+ # Try to find it after installation
21+ if [ -f " /home/matthias/.asdf/installs/golang/1.24.4/bin/goreleaser" ]; then
22+ GORELEASER_PATH=" /home/matthias/.asdf/installs/golang/1.24.4/bin/goreleaser"
23+ elif command -v goreleaser & > /dev/null; then
24+ GORELEASER_PATH=" goreleaser"
25+ else
26+ echo " Failed to install or locate GoReleaser"
27+ exit 1
28+ fi
29+ fi
30+
31+ # Run GoReleaser in snapshot mode
32+ echo " Building release artifacts locally..."
33+ " $GORELEASER_PATH " release --snapshot --clean
34+
35+ echo " Local release test completed!"
36+ echo " Check the 'dist/' directory for generated binaries and archives."
37+ echo " "
38+ echo " Generated files:"
39+ ls -la dist/ | grep -E " \.(tar\.gz|exe)$|checksums\.txt" | head -10
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ # Release script for ctRestClient
4+ # Usage: ./scripts/release.sh <version>
5+ # Example: ./scripts/release.sh v1.0.0
6+
7+ set -e
8+
9+ if [ $# -ne 1 ]; then
10+ echo " Usage: $0 <version>"
11+ echo " Example: $0 v1.0.0"
12+ exit 1
13+ fi
14+
15+ VERSION=$1
16+
17+ # Validate version format (should start with v)
18+ if [[ ! $VERSION =~ ^v ]]; then
19+ echo " Version should start with 'v' (e.g., v1.0.0)"
20+ exit 1
21+ fi
22+
23+ echo " Creating release $VERSION ..."
24+
25+ # Check if working directory is clean
26+ if [ -n " $( git status --porcelain) " ]; then
27+ echo " Working directory is not clean. Please commit or stash changes first."
28+ exit 1
29+ fi
30+
31+ # Create and push tag
32+ echo " Creating tag $VERSION ..."
33+ git tag " $VERSION "
34+
35+ echo " Pushing tag to origin..."
36+ git push origin " $VERSION "
37+
38+ echo " Release $VERSION created successfully!"
39+ echo " GitHub Actions will now build and publish the release automatically."
40+ echo " Check the Actions tab in your repository for progress."
You can’t perform that action at this time.
0 commit comments