Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
620c090
feature: Add error handling package with custom error types and utili…
Nov 8, 2025
77cffb9
feature: Refactor configuration management commands and add generate …
Nov 8, 2025
6e0595e
feature: Add subcommands for generate, config, and services in gtool CLI
Nov 8, 2025
de3992d
feature: Implement plugin registry with service, launcher, and execut…
Nov 8, 2025
ecffe65
feature: Add configuration types and default implementation for gtool
Nov 8, 2025
1027b83
feature: Define plugin interfaces for service, app launcher, and test…
Nov 8, 2025
c92f766
feature: Add services management commands for mock services in gtool
Nov 8, 2025
7a8980c
feature: Add configuration validator for gtool
Nov 8, 2025
d37b8c9
feature: Implement service registration for PostgreSQL plugin
Nov 8, 2025
8a18296
feature: Implement Docker client for container management and Postgre…
Nov 8, 2025
8e37c32
feature: Add initial configuration file for GTOOL component testing p…
Nov 8, 2025
ce6729b
feature: Add logger implementation with configurable levels and conte…
Nov 8, 2025
111ea2e
feature: Implement PostgreSQL service plugin with Docker integration
Nov 8, 2025
14be33a
feature: Add CI configuration for testing and linting with Go
Nov 8, 2025
68d2dd2
feature: Add golangci-lint configuration for code quality checks
Nov 8, 2025
ec23f5a
feature: Update go.mod to include go-connections dependency
Nov 8, 2025
aae8780
feature: Add application lifecycle management and configuration loader
Nov 8, 2025
c1b420a
feature: Update CI configuration to skip golangci-lint config check
Nov 8, 2025
00b85be
refactor: Remove skip-config-check argument from golangci-lint action
Nov 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: CI

on:
push:
branches: [ '**' ]
pull_request:
branches: [ main, develop ]

jobs:
test:
name: Test
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
cache: true

- name: Download dependencies
run: go mod download

- name: Run tests
run: make test

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: coverage.out
retention-days: 7

lint:
name: Lint
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
cache: true

- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: latest
args: --config=configs/golangci-lint.yml --timeout=5m
81 changes: 81 additions & 0 deletions configs/golangci-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
run:
timeout: 5m
tests: true
modules-download-mode: readonly

linters:
enable:
- gosimple # Simplify code
- govet # Vet examines Go source code
- ineffassign # Detect ineffectual assignments
- staticcheck # Static analysis
- unused # Check for unused code
- gofmt # Check formatting
- goimports # Check imports
- misspell # Check for misspelled words
- gocyclo # Check cyclomatic complexity

disable:
- errcheck # Too many legitimate ignores in codebase
- revive # Name stuttering not critical for now
- goconst # Repeated strings acceptable in this phase
- gosec # Security checks too strict for dev phase

linters-settings:
errcheck:
check-blank: true
check-type-assertions: false

govet:
enable-all: true
disable:
- shadow
- fieldalignment # Disabled: memory optimization not critical for now

gocyclo:
min-complexity: 20 # Increased from 15 for parseConfig-like functions

staticcheck:
checks:
- all
- -SA1019 # Ignore deprecated APIs (Docker SDK transition)
- -SA1012 # Ignore nil context in tests

gosec:
excludes:
- G104 # Audit errors not checked

revive:
rules:
- name: exported
disabled: false
- name: package-comments
disabled: true

issues:
exclude-rules:
# Exclude some linters from running on tests files
- path: _test\.go
linters:
- gocyclo
- errcheck
- gosec
- goconst

# Exclude some staticcheck messages
- linters:
- staticcheck
text: "SA9003:"

max-issues-per-linter: 0
max-same-issues: 0

output:
formats:
- format: colored-line-number
print-issued-lines: true
print-linter-name: true

# Minimal settings for now, can be expanded later
severity:
default-severity: warning
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ go 1.24.9

require (
github.com/docker/docker v27.5.0+incompatible
github.com/docker/go-connections v0.6.0
github.com/spf13/cobra v1.10.1
github.com/spf13/viper v1.19.0
github.com/stretchr/testify v1.11.1
Expand All @@ -16,7 +17,6 @@ require (
github.com/containerd/log v0.1.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/distribution/reference v0.6.0 // indirect
github.com/docker/go-connections v0.6.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
Expand Down
142 changes: 0 additions & 142 deletions internal/cli/config.go

This file was deleted.

Loading