diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b83c51..d994dde 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@v6 with: go-version-file: galvanize-instancer/go.mod cache-dependency-path: galvanize-instancer/go.sum @@ -28,13 +28,13 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@v6 with: go-version-file: galvanize-instancer/go.mod cache-dependency-path: galvanize-instancer/go.sum - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v9 with: version: latest working-directory: galvanize-instancer diff --git a/galvanize-instancer/internal/ansible/published_ports.go b/galvanize-instancer/internal/ansible/published_ports.go index 135d676..abb8c30 100644 --- a/galvanize-instancer/internal/ansible/published_ports.go +++ b/galvanize-instancer/internal/ansible/published_ports.go @@ -13,17 +13,6 @@ var knownDockerProtocols = map[string]struct{}{ "sctp": {}, } -// normalizePublishedPorts supports optional protocol hints in published_ports, -// e.g. "22/ssh" or "8080:80/http". -// -// It returns: -// - a shallow-copied deploy params map where published_ports entries are made Docker-compatible, -// - a target-port to connection-scheme map used when building connection info. -func normalizePublishedPorts(params map[string]interface{}) (map[string]interface{}, map[int]string) { - normalized, hints, _ := normalizePublishedPortsWithState(params, false, nil, false) - return normalized, hints -} - func randomizableContainerPorts(params map[string]interface{}) []string { rawPorts, ok := params["published_ports"] if !ok { diff --git a/galvanize-instancer/internal/docker/compose.go b/galvanize-instancer/internal/docker/compose.go index 5a5f9f0..6559558 100644 --- a/galvanize-instancer/internal/docker/compose.go +++ b/galvanize-instancer/internal/docker/compose.go @@ -36,7 +36,7 @@ func SanitizeProjectName(name string) string { func BuildComposeProject(unique bool, challengeName, teamID string) string { var composeProject string - if unique == true { + if unique { composeProject = "global-" + challengeName composeProject = SanitizeProjectName(composeProject) } else { diff --git a/galvanize-instancer/internal/loadtest/loadtest.go b/galvanize-instancer/internal/loadtest/loadtest.go index 5b46169..c0474f6 100644 --- a/galvanize-instancer/internal/loadtest/loadtest.go +++ b/galvanize-instancer/internal/loadtest/loadtest.go @@ -304,23 +304,23 @@ func (s *stats) report(out io.Writer, phase string, elapsed time.Duration) { minLatency = 0 } - fmt.Fprintf(out, "\nPhase %s\n", phase) - fmt.Fprintf(out, " Duration: %s\n", elapsed) - fmt.Fprintf(out, " Total: %d Success: %d Errors: %d\n", total, success, errors) - fmt.Fprintf(out, " Latency: min %s avg %s max %s\n", minLatency, avgLatency, maxLatency) + _, _ = fmt.Fprintf(out, "\nPhase %s\n", phase) + _, _ = fmt.Fprintf(out, " Duration: %s\n", elapsed) + _, _ = fmt.Fprintf(out, " Total: %d Success: %d Errors: %d\n", total, success, errors) + _, _ = fmt.Fprintf(out, " Latency: min %s avg %s max %s\n", minLatency, avgLatency, maxLatency) s.mu.Lock() if len(s.statuses) > 0 { - fmt.Fprintf(out, " Status counts:") + _, _ = fmt.Fprintf(out, " Status counts:") for code, count := range s.statuses { - fmt.Fprintf(out, " %d=%d", code, count) + _, _ = fmt.Fprintf(out, " %d=%d", code, count) } - fmt.Fprintln(out, "") + _, _ = fmt.Fprintln(out, "") } if len(s.errSamples) > 0 { - fmt.Fprintln(out, " Error samples:") + _, _ = fmt.Fprintln(out, " Error samples:") for _, sample := range s.errSamples { - fmt.Fprintf(out, " - %s\n", sample) + _, _ = fmt.Fprintf(out, " - %s\n", sample) } } s.mu.Unlock() diff --git a/galvanize-instancer/main.go b/galvanize-instancer/main.go index d93db49..e0b9a55 100755 --- a/galvanize-instancer/main.go +++ b/galvanize-instancer/main.go @@ -15,7 +15,7 @@ func main() { } else { logger.Init(false) } - defer zap.L().Sync() + defer func() { _ = zap.L().Sync() }() cmd.SetVersion(Version) cmd.Execute() } diff --git a/galvanize-instancer/pkg/restserver.go b/galvanize-instancer/pkg/restserver.go index 06c3757..ec814bc 100755 --- a/galvanize-instancer/pkg/restserver.go +++ b/galvanize-instancer/pkg/restserver.go @@ -152,7 +152,7 @@ func (s *Server) DeployInstance(ctx echo.Context) error { zap.S().Errorf("Failed to get challenge infos: %v", err) return ctx.JSON(400, api.Error{Message: utils.HTTP500Debug(fmt.Sprintf("Failed to get challenge info: %v", err))}) //TODO notify admin } - if chall.Unique == true { + if chall.Unique { zap.S().Errorf("Attempt to deploy unique challenge %s for team %s", req.ChallengeName, claims.TeamID) return ctx.JSON(403, api.Error{Message: utils.Ptr("Unauthorized")}) } @@ -238,7 +238,7 @@ func (s *Server) GetInstanceStatus(ctx echo.Context) error { return ctx.JSON(400, api.Error{Message: utils.Ptr("Invalid challenge")}) } var deployment *models.Deployment - if chall.Unique == true { + if chall.Unique { zap.S().Debugf("Status request received for challenge %s", chall.Name) deployment, err = models.GetUniqueDeployment(s.db, chall.Category, chall.Name, false) } else { diff --git a/galvanize-instancer/pkg/restserver_admin.go b/galvanize-instancer/pkg/restserver_admin.go index 1e5fa9c..9fd871d 100644 --- a/galvanize-instancer/pkg/restserver_admin.go +++ b/galvanize-instancer/pkg/restserver_admin.go @@ -91,7 +91,7 @@ func (s *Server) DeployAdminInstance(ctx echo.Context) error { zap.S().Errorf("Failed to get challenge infos: %v", err) return ctx.JSON(400, api.Error{Message: utils.Ptr(fmt.Sprintf("Failed to get challenge info: %v", err))}) } - if chall.Unique != true { + if !chall.Unique { zap.S().Errorf("Attempt to admin-deploy non-unique challenge %s", req.ChallengeName) return ctx.JSON(400, api.Error{Message: utils.Ptr("Challenge is not unique")}) } diff --git a/galvanize-instancer/pkg/utils/ssh.go b/galvanize-instancer/pkg/utils/ssh.go index ffd19bd..9c86c62 100644 --- a/galvanize-instancer/pkg/utils/ssh.go +++ b/galvanize-instancer/pkg/utils/ssh.go @@ -43,7 +43,7 @@ func RegisterSSHHosts(cfg *config.Config) error { if err != nil { return err } - defer f.Close() + defer func() { _ = f.Close() }() // Register all hosts that need it for _, host := range hostsToRegister { diff --git a/galvanize-instancer/pkg/worker/pool.go b/galvanize-instancer/pkg/worker/pool.go index 6f6dfac..47ffc0f 100644 --- a/galvanize-instancer/pkg/worker/pool.go +++ b/galvanize-instancer/pkg/worker/pool.go @@ -132,7 +132,6 @@ func (p *Pool) runWorker(ctx context.Context, workerID string) { } p.processJob(ctx, workerID, job) - job = nil // Help GC // Aggressively free memory after each job since Ansible processes are memory-heavy runtime.GC()