Documentation
¶
Overview ¶
Package woodpecker implements providers.Provider for Woodpecker CI.
Woodpecker CI (community fork of Drone) uses agents that connect to the Woodpecker server via gRPC. The server dispatches pipelines defined in .woodpecker.yml to connected agents. Agents execute pipeline steps in Docker containers.
Integration model:
ephemerd maintains a pool of Woodpecker agent containers. Each agent connects to the Woodpecker server using a shared secret, receives pipelines, and executes them. When an agent finishes a pipeline, ephemerd replaces it — same pool model as Forgejo/Gitea. The Woodpecker server itself requires a forge backend (Gitea, Forgejo, GitHub, or GitLab) for repo management and webhook-driven triggers. ephemerd does not manage the server — only the agents.
Reference:
Index ¶
- type Config
- type Provider
- func (p *Provider) ClaimJob(ctx context.Context, event *providers.JobEvent, runnerName string, ...) (*providers.Claim, error)
- func (p *Provider) DefaultImage() string
- func (p *Provider) DefaultImageFor(os string) string
- func (p *Provider) DefaultJobImage() string
- func (p *Provider) FetchJobImage(ctx context.Context, event *providers.JobEvent) string
- func (p *Provider) Name() string
- func (p *Provider) ReleaseJob(ctx context.Context, claim *providers.Claim) error
- func (p *Provider) Start(ctx context.Context, cfg providers.PollConfig) (<-chan providers.JobEvent, error)
- func (p *Provider) Stop(ctx context.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// ServerURL is the gRPC address of the Woodpecker server
// (e.g., "woodpecker.example.com:9000").
ServerURL string
// AgentSecret is the shared secret between server and agent.
// Set via WOODPECKER_AGENT_SECRET on the server side.
AgentSecret string
Log *slog.Logger
}
Config for the Woodpecker provider.
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider implements providers.Provider for Woodpecker CI.
func (*Provider) DefaultImage ¶
func (*Provider) DefaultImageFor ¶
DefaultImageFor returns the agent image for the given job OS. Woodpecker's agent is Linux-only upstream; Windows returns empty so the runtime can pick its host fallback if a workflow ever targets Windows.
func (*Provider) DefaultJobImage ¶
DefaultJobImage returns empty — the Woodpecker agent creates job containers based on the image: field in .woodpecker.yml pipeline steps.