woodpecker

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: MIT Imports: 4 Imported by: 0

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

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 New

func New(cfg Config) (*Provider, error)

New creates a Woodpecker provider.

func (*Provider) ClaimJob

func (p *Provider) ClaimJob(ctx context.Context, event *providers.JobEvent, runnerName string, labels []string) (*providers.Claim, error)

func (*Provider) DefaultImage

func (p *Provider) DefaultImage() string

func (*Provider) DefaultImageFor

func (p *Provider) DefaultImageFor(os string) string

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

func (p *Provider) DefaultJobImage() string

DefaultJobImage returns empty — the Woodpecker agent creates job containers based on the image: field in .woodpecker.yml pipeline steps.

func (*Provider) FetchJobImage

func (p *Provider) FetchJobImage(ctx context.Context, event *providers.JobEvent) string

func (*Provider) Name

func (p *Provider) Name() string

func (*Provider) ReleaseJob

func (p *Provider) ReleaseJob(ctx context.Context, claim *providers.Claim) error

func (*Provider) Start

func (p *Provider) Start(ctx context.Context, cfg providers.PollConfig) (<-chan providers.JobEvent, error)

func (*Provider) Stop

func (p *Provider) Stop(ctx context.Context) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL