22
33on :
44 push :
5- branches : [ master ]
5+ branches : [master]
66 pull_request :
77
88jobs :
@@ -11,33 +11,41 @@ jobs:
1111 runs-on : ubuntu-latest
1212 steps :
1313 - uses : actions/checkout@v6
14-
14+
1515 - name : Set up Go
1616 uses : actions/setup-go@v6
1717 with :
1818 go-version : ' 1.25.5'
1919 cache-dependency-path : go.sum
20-
20+
2121 - name : Run tests with coverage
2222 run : go test -coverprofile=coverage.out -covermode=atomic ./...
23-
23+
2424 - name : Generate coverage summary
2525 run : |
26- echo "## Test Coverage Report" >> $GITHUB_STEP_SUMMARY
27- echo "" >> $GITHUB_STEP_SUMMARY
28-
26+ {
27+ echo "## Test Coverage Report"
28+ echo ""
29+ } >> "$GITHUB_STEP_SUMMARY"
30+
2931 # Get overall coverage
30- COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}')
31- echo "**Overall Coverage:** $COVERAGE" >> $GITHUB_STEP_SUMMARY
32- echo "" >> $GITHUB_STEP_SUMMARY
33-
34- # Add detailed coverage table
35- echo "### Coverage by Package" >> $GITHUB_STEP_SUMMARY
36- echo "" >> $GITHUB_STEP_SUMMARY
37- echo "| Package | Coverage |" >> $GITHUB_STEP_SUMMARY
38- echo "|---------|----------|" >> $GITHUB_STEP_SUMMARY
39- go tool cover -func=coverage.out | grep -v "total:" | awk '{print "| " $1 " " $2 " | " $3 " |"}' >> $GITHUB_STEP_SUMMARY
40-
32+ COVERAGE=$(go tool cover -func=coverage.out | \
33+ grep total | \
34+ awk '{print $3}' \
35+ )
36+ {
37+ echo "**Overall Coverage:** $COVERAGE"
38+ echo ""
39+
40+ echo "### Coverage by Package"
41+ echo ""
42+ echo "| Package | Coverage |"
43+ echo "|---------|----------|"
44+ go tool cover -func=coverage.out | \
45+ grep -v "total:" | \
46+ awk '{print "| " $1 " " $2 " | " $3 " |"}'
47+ } >> "$GITHUB_STEP_SUMMARY"
48+
4149 - name : Upload coverage to artifacts
4250 uses : actions/upload-artifact@v6
4351 with :
@@ -49,13 +57,13 @@ jobs:
4957 runs-on : ubuntu-latest
5058 steps :
5159 - uses : actions/checkout@v6
52-
60+
5361 - name : Set up Go
5462 uses : actions/setup-go@v6
5563 with :
5664 go-version : ' 1.25.5'
5765 cache-dependency-path : go.sum
58-
66+
5967 - name : Run go vet
6068 run : go vet ./...
6169
@@ -64,18 +72,18 @@ jobs:
6472 runs-on : ubuntu-latest
6573 steps :
6674 - uses : actions/checkout@v6
67-
75+
6876 - name : Set up Go
6977 uses : actions/setup-go@v6
7078 with :
7179 go-version : ' 1.25.5'
7280 cache-dependency-path : go.sum
73-
81+
7482 - name : Install golangci-lint
7583 uses : golangci/golangci-lint-action@v9
7684 with :
7785 version : v2.7.2
78-
86+
7987 - name : Run golangci-lint
8088 run : golangci-lint run ./...
8189
@@ -84,26 +92,29 @@ jobs:
8492 runs-on : ubuntu-latest
8593 steps :
8694 - uses : actions/checkout@v6
87-
95+
8896 - name : Set up Go
8997 uses : actions/setup-go@v6
9098 with :
9199 go-version : ' 1.25.5'
92100 cache-dependency-path : go.sum
93-
101+
94102 - name : Run go mod tidy
95103 run : go mod tidy
96-
104+
97105 - name : Check for changes
98106 run : |
99- git diff --exit-code go.mod go.sum || (echo "go.mod or go.sum has uncommitted changes after 'go mod tidy'" && exit 1)
107+ git diff --exit-code go.mod go.sum || (
108+ echo "go.mod or go.sum has uncommitted changes after 'go mod tidy'"
109+ exit 1
110+ )
100111
101112 build :
102113 name : Build Binary
103114 runs-on : ubuntu-latest
104115 steps :
105116 - uses : actions/checkout@v6
106-
117+
107118 - name : Build binary target
108119 run : |
109120 docker buildx build . \
@@ -129,4 +140,3 @@ jobs:
129140 exit 1
130141 fi
131142 echo "✅ CI passed"
132-
0 commit comments