Today's Deep-Dive: Woodpecker CI
Ep. 169

Today's Deep-Dive: Woodpecker CI

Episode description

This episode focuses on Woodpecker CICD, a simple yet powerful continuous integration and continuous deployment engine. It automates the process of taking code from developers, testing it, and deploying it reliably, utilizing Docker containers for consistency and portability. Each step in the pipeline runs in its own Docker container, allowing for isolated and repeatable builds. Woodpecker is lightweight, requiring minimal resources, which makes it accessible for self-hosting on modest hardware. It features an extensible plugin system, enabling users to create custom Docker containers for specific tasks, supported by an active community. The project is open-source, licensed under Apache 2.0, and has a healthy GitHub presence with numerous contributors. Real-world usage is exemplified by Codeberg, a privacy-focused Git hosting platform that employs Woodpecker as its main CI-CD engine. The documentation is user-friendly and encourages community involvement through translation efforts. Overall, Woodpecker demonstrates how powerful automation can be achieved through well-designed, simpler components rather than complex systems.

Download transcript (.srt)
0:00

Okay. Hello and welcome. We're going to unpack some interesting source

0:02

material today. That's right. We've been looking at the GitHub page and the

0:07

official website for a Woodpecker CICD. Exactly. And our mission here is really

0:13

to dig into this, go beyond just the surface level specs. Yeah. Pull out the

0:18

key insights, understand what Woodpecker actually is, how it works. And why it

0:23

might matter to you, especially maybe if you're newer to these CICD ideas, we

0:28

want to make it accessible. Definitely. And before we dive in, this deep dive is

0:32

brought to you with support from Safe Server. They're a fantastic resource if

0:36

you're looking at hosting software like the kind we're discussing and they can

0:40

really help with that whole digital transformation piece. Good to know. You can

0:44

find out more over at www.safeserver.de. Again, that's www.safeserver.de. Great. So

0:51

yeah, whether you're just curious about automating your code, maybe looking for a

0:54

tool, or just want to understand what makes a CI-CD engine tick, let's jump

0:58

right in. Alright, so looking at the sources, the first thing that kind of

1:01

jumps out is Woodpecker's own description. They call it a simple yet

1:05

powerful CI-CD engine with great extensibility. Simple and powerful. That's

1:13

often the tricky balance, isn't it? It really is. And maybe we should quickly

1:17

define CI-CD for anyone listening who's new to it. A good idea. So CI-CD stands

1:22

for continuous integration and continuous deployment. Basically, it's

1:27

about automating all those steps. Right. You know, taking code from a developer,

1:31

testing it automatically, making sure it works. And then getting it out there

1:35

reliably, whether that's onto a server or into users hands, automating that

1:39

pipeline. Exactly. So Woodpecker is the engine that runs those automated

1:42

workflows. And digging into the sources, a really core part of how it tries to be

1:47

both simple and powerful is its use of Docker containers. Ah, Docker. Okay, that

1:52

makes sense in modern development. So how does it use them? Well, basically every

1:56

single step in your pipeline, like compiling your code, running your tests,

1:59

building the thing you want to deploy, it all runs inside its own separate Docker

2:03

container. Okay, so isolation. Exactly. The big insight there is consistency. Your

2:09

build environment is neatly packaged, so it should, you know, run the same way

2:13

every single time. Right. Regardless of the machine, it's actually running on

2:16

underneath. Yeah. And portability, too, I guess. Absolutely. If it runs in Docker,

2:20

you can pretty much run it wherever Docker runs. And that container approach,

2:23

that must link to the great extensibility part they mentioned. It does,

2:27

yeah. The sources really highlight this. If a standard Docker image doesn't quite

2:31

cut it for a specific task you need. Like something really specific. Yeah, you can

2:35

build custom plugins. These are essentially just purpose-built Docker

2:40

containers designed to do that one specific job within your pipeline. So the

2:45

plugin system is the key way you extend it. And you said the sources point to a

2:49

website for those. Yep. There's a dedicated plugin overview site. It lists

2:53

plugins from the core team and from the community, which suggests, you know,

2:57

there's an active ecosystem around it. That's good to see. An active community

3:01

makes a big difference with open source tools. Definitely. And that flexibility

3:05

also shows up in how it handles workflows. The sources mentioned you can

3:08

have multiple workflows for just one project. Okay. And importantly, these

3:13

workflows can even depend on each other. You can chain them. Oh, right. So you

3:16

could have, like, test run first and only if they pass, then the build workflow

3:20

kicks off. Exactly that kind of thing. Allows for pretty complex setups even

3:25

with that focus on simplicity. Speaking of simple, let's talk footprint. Yeah.

3:30

Because the numbers in the sources, they seemed, well, pretty low. They really do.

3:35

It's described as remarkably lightweight. We saw figures like around a hundred

3:40

megabytes of RAM for the main server part. A hundred megs, that's tiny. And just 30

3:45

megabytes for the agent component when it's sitting idle. Wow, okay, the insight

3:49

there is clearly accessibility, right? Totally. It lowers the barrier massively

3:52

for self-hosting. You don't need some huge beefy server. It could run on pretty

3:57

modest hardware, good for smaller teams, individuals. Hobby projects, you name it.

4:01

And that ties in with the default database too. Which is Squidlight,

4:04

according to the sources. Right. Which, again, reinforces that ease of setup.

4:09

It's usually just a single file, minimal fuss. Yeah, it all points towards being

4:13

easy to get started with, and the docs are available. Oh yeah, the sources point

4:17

to woodpecker-ci.org.doc-centro for documentation. Good. And another nice

4:23

touch, they mention translation efforts. There's a self-hosted weblate instance

4:27

for translating the interface and docs. Making it accessible globally, that's

4:31

always good to see. Now, abstract concepts are one thing, but seeing it

4:35

used, that always helps. Did the sources mention any real-world use cases? They

4:41

did give one specific example, Codeberg. Right, the Git hosting platform.

4:45

Yeah, described in the sources as an alternative Git host, focused on privacy

4:49

and free software, and woodpecker is their main CI-CD engine. Okay, that's

4:54

actually a really interesting point. The insight there is maybe the tools

4:56

philosophy aligns with Codeberg's. Seems likely. You know, open source, lightweight,

5:00

self-hostable, focused on simple controllable automation. It fits that

5:05

free software privacy conscious ethos quite well. Yeah, that makes sense. It's a

5:09

good endorsement. What about the project itself? Licensing, community size, that

5:13

sort of thing. Okay, so the source code itself is under the Apache 2.0 license.

5:17

Pretty standard permissive open source license then. Exactly, it means you can

5:21

use it, modify it, even in commercial stuff, quite freely. Just need to keep the

5:25

license info. And the documentation had a different one. Correct. The docs are

5:30

under

5:30

Creative Commons attribution share alike 4.0. Ah, the standard for content sharing.

5:36

Share, adapt, but give credit and share back alike. Precisely, encourages

5:41

community improvement of the docs. Makes sense. And those github stats you found,

5:46

they look pretty healthy. Yeah, the numbers were 5.1 thousand stars, 421

5:51

forks, and 485 contributors. 485 contributors. That definitely points to

5:57

an active community. It does. And if you listening find it useful and want to

6:01

support it, the sources mention Open Collective and github sponsors as ways

6:05

to become a backer. Good to know there are ways to contribute back. And just as

6:09

a tech detail, do they list the main languages used? They did, yeah. It's

6:14

mainly go for the backend, it seems, then view, typescript, CSS, makefile, and

6:19

JavaScript listed. So a fairly modern stack. Go for performance view and

6:24

typescript for the front end. Interesting mix. Yeah, it gives you a peek under the

6:28

hood. Okay, so let's step back a bit. We've dug through the sources on

6:31

Woodpecker. Why does understanding a tool like this matter for you, the listener?

6:34

Well, I think it provides a really concrete, understandable example of how

6:39

automation actually works in software. Right, it takes these sometimes abstract

6:43

ideas like CI, CD, containers. It shows them in action in a tool that's designed

6:48

to be simple and resource efficient. It demonstrates you don't always need huge

6:55

complex beasts to do powerful automation. Yeah, it demystifies it a bit. You see,

7:00

the principles open source, containerization for that consistency we

7:03

talked about, extensibility through plug-in. It makes it feel more tangible,

7:07

less like, you know, abstract magic. Okay, so let's quickly recap the main

7:11

takeaways

7:12

from our deep dive into the Woodpecker sources. That's good. We've seen it's

7:15

pitched as simple yet powerful. It's open source CI CD, built fundamentally on

7:20

Docker containers, which gives it consistency and portability. Look at that

7:24

really lightweight footprint using Squallet by default, making it super

7:29

accessible for self-hosting. Right, and it's extensible through a plug-in system

7:33

with an active community contributing. Plus, it's used in the real world by

7:37

projects like CodeBird, which kind of reflects its core values. We basically

7:41

tried to connect the dots from the sources to give you the overall picture.

7:44

Exactly. And a final thank you again to Safe Server for supporting this deep

7:49

dive. Remember, they can help with hosting software and supporting your

7:53

digital transformation. Find out more at www.safeserver.de. Definitely check them

7:59

out. And maybe a final thought to leave you with. Go on. Consider how often really

8:03

powerful systems like effective automation aren't just one giant complex

8:07

thing, but they're built by combining simpler, focused, well-designed pieces

8:12

like Woodpecker aims to be. How could thinking that way maybe change how you

8:18

approach building things yourself? Or even just understanding the tech behind

8:23

something complex and powerful. Exactly. Something to think about.

8:23

something complex and powerful. Exactly. Something to think about.