add goSec, go-lint, update actions (#2)
All checks were successful
Gitea Docker Build Demo / Test (push) Successful in 3m20s
Gitea Docker Build Demo / Build_Image (push) Successful in 1m25s

Co-authored-by: Julian <j-ha+gitea@uploadfilter24.eu>
Co-committed-by: Julian <j-ha+gitea@uploadfilter24.eu>
This commit is contained in:
2025-10-09 15:47:40 +00:00
committed by lerentis
parent 4805faf9db
commit 4aa8d104bb
5 changed files with 53 additions and 13 deletions

View File

@@ -10,13 +10,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '1.24.x'
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1
- name: Test with the Go CLI
run: go test ./...
run: go test ./... -v
- name: Run Gosec Security Scanner
uses: securego/gosec@master
with:
args: ./...
Build_Image:
runs-on: ubuntu-latest
steps:

View File

@@ -7,13 +7,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '1.24.x'
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1
- name: Test with the Go CLI
run: go test ./...
run: go test ./... -v
- name: Run Gosec Security Scanner
uses: securego/gosec@master
with:
args: ./...
Build_Image:
runs-on: ubuntu-latest
steps:

View File

@@ -7,13 +7,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '1.24.x'
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1
- name: Test with the Go CLI
run: go test ./...
run: go test ./... -v
- name: Run Gosec Security Scanner
uses: securego/gosec@master
with:
args: ./...
Build_Image:
runs-on: ubuntu-latest
steps:

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"net/http"
"sync"
"time"
"github.com/gorilla/mux"
log "github.com/sirupsen/logrus"
@@ -36,7 +37,16 @@ func (hs *HealthServer) Start() {
r := mux.NewRouter()
r.Use(mux.CORSMethodMiddleware(r))
r.HandleFunc("/health", hs.sendHealth).Methods(http.MethodGet)
err := http.ListenAndServe("0.0.0.0:8080", r)
server := &http.Server{
Addr: "0.0.0.0:8080",
Handler: r,
ReadTimeout: 15 * time.Second,
WriteTimeout: 15 * time.Second,
IdleTimeout: 60 * time.Second,
}
err := server.ListenAndServe()
if err != nil {
log.WithFields(log.Fields{
"Caller": "HealthServer.Start",

View File

@@ -4,6 +4,7 @@ import (
"net/http"
"strings"
"testing"
"time"
)
func TestHealth(t *testing.T) {
@@ -11,14 +12,19 @@ func TestHealth(t *testing.T) {
go func() {
hs.Start()
}()
// Give the server time to start up
time.Sleep(100 * time.Millisecond)
request, _ := http.NewRequest(http.MethodGet, "http://localhost:8080/health", strings.NewReader(""))
resp, err := http.DefaultClient.Do(request)
if err != nil {
t.Errorf("Health endpoint did not start: %v", err)
return
}
if resp.StatusCode != http.StatusOK {
if resp != nil && resp.StatusCode != http.StatusOK {
t.Errorf("Bad response from health endpoint. Want: %d, got %d", http.StatusOK, resp.StatusCode)
}
}