Architecture
Package architectureโ
System architectureโ
main package hierarchyโ
package | meaning | imports |
---|---|---|
cmd/** | parse command-line args & environment to stat server/cli/agent | all other |
agent/** | code only agent (remote worker) will need | pipeline , shared |
cli/** | code only cli tool does need | pipeline , shared , woodpecker-go |
server/** | code only server will need | pipeline , shared |
shared/** | code shared for all three main tools (go help utils) | only std and external libs |
woodpecker-go/** | go client for server rest api | std |
Serverโ
package | meaning | imports |
---|---|---|
server/api/** | handle web requests from server/router | pipeline , ../badges , ../ccmenu , ../logging , ../model , ../pubsub , ../queue , ../forge , ../shared , ../store , shared , (TODO: mv server/router/middleware/session ) |
server/badges/** | generate svg badges for pipelines | ../model |
server/ccmenu/** | generate xml ccmenu for pipelines | ../model |
server/grpc/** | gRPC server agents can connect to | pipeline/rpc/** , ../logging , ../model , ../pubsub , ../queue , ../forge , ../pipeline , ../store |
server/logging/** | logging lib for gPRC server to stream logs while running | std |
server/model/** | structs for store (db) and api (json) | std |
server/plugins/** | plugins for server | ../model , ../forge |
server/pipeline/** | orchestrate pipelines | pipeline , ../model , ../pubsub , ../queue , ../forge , ../store , ../plugins |
server/pubsub/** | pubsub lib for server to push changes to the WebUI | std |
server/queue/** | queue lib for server where agents pull new pipelines from via gRPC | server/model |
server/forge/** | forge lib for server to connect and handle forge specific stuff | shared , server/model |
server/router/** | handle requests to REST API (and all middleware) and serve UI and WebUI config | shared , ../api , ../model , ../forge , ../store , ../web |
server/store/** | handle database | server/model |
server/shared/** | TODO: move and split #974 | |
server/web/** | server SPA |
../
=server/
Agentโ
TODO
CLIโ
TODO