@@ -11,99 +11,99 @@ jobs:
1111 runs-on : ubuntu-latest
1212 steps :
1313 - uses : actions/checkout@v4
14-
14+
1515 - name : Set up Go
1616 uses : actions/setup-go@v4
1717 with :
1818 go-version : ' 1.22'
19-
19+
2020 - name : Cache Go modules
2121 uses : actions/cache@v3
2222 with :
2323 path : ~/go/pkg/mod
2424 key : ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
2525 restore-keys : |
2626 ${{ runner.os }}-go-
27-
27+
2828 - name : Download dependencies
2929 run : go mod download
30-
30+
3131 - name : Verify dependencies
3232 run : go mod verify
33-
33+
3434 - name : Run vet
3535 run : go vet ./...
36-
36+
3737 - name : Run tests
3838 run : go test -race -cover ./...
39-
39+
4040 - name : Build
4141 run : go build -o navigator ./cmd/navigator
42-
42+
4343 - name : Test binary
4444 run : |
4545 # Create minimal test environment with YAML configuration
4646 mkdir -p /tmp/test-rails/config
47- cat << 'EOF' > /tmp/test-rails/config/navigator.yml
48- server :
49- listen : 0 # Use port 0 for testing
50- hostname : localhost
51- public_dir : /tmp/test-rails/public
52-
53- pools :
54- max_size : 1
55- idle_timeout : 300
56- start_port : 4000
57-
58- auth :
59- enabled : false
60-
61- static :
62- directories : []
63- extensions : [html, css, js]
64- try_files :
65- enabled : false
66-
67- applications :
68- env : {}
69- tenants : []
70-
71- managed_processes : []
72- EOF
73- mkdir -p /tmp/test-rails/public
47+ cat > /tmp/test-rails/config/navigator.yml << 'EOF'
48+ server:
49+ listen: 0 # Use port 0 for testing
50+ hostname: localhost
51+ public_dir: /tmp/test-rails/public
52+
53+ pools:
54+ max_size: 1
55+ idle_timeout: 300
56+ start_port: 4000
57+
58+ auth:
59+ enabled: false
60+
61+ static:
62+ directories: []
63+ extensions: [html, css, js]
64+ try_files:
65+ enabled: false
66+
67+ applications:
68+ env: {}
69+ tenants: []
7470
71+ managed_processes: []
72+ EOF
73+ mkdir -p /tmp/test-rails/public
74+
7575 # Test that binary starts and exits cleanly with YAML config
7676 timeout 5s ./navigator /tmp/test-rails/config/navigator.yml || [ $? -eq 124 ]
77-
77+
7878 build :
7979 runs-on : ubuntu-latest
8080 needs : test
8181 if : github.ref == 'refs/heads/main'
82-
82+
8383 steps :
8484 - uses : actions/checkout@v4
85-
85+
8686 - name : Set up Go
8787 uses : actions/setup-go@v4
8888 with :
8989 go-version : ' 1.22'
90-
90+
9191 - name : Build binaries
9292 run : |
9393 # Linux AMD64
9494 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o navigator-linux-amd64 ./cmd/navigator
95-
95+
9696 # Linux ARM64
9797 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o navigator-linux-arm64 ./cmd/navigator
98-
98+
9999 # macOS AMD64
100100 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -o navigator-darwin-amd64 ./cmd/navigator
101-
101+
102102 # macOS ARM64
103103 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w" -o navigator-darwin-arm64 ./cmd/navigator
104-
104+
105105 - name : Upload artifacts
106106 uses : actions/upload-artifact@v4
107107 with :
108108 name : navigator-binaries
109- path : navigator-*
109+ path : navigator-*
0 commit comments