Working with Codeberg's CI

Every piece of code should be tested regularly. Ideally developers already implement unit-tests to test the functionality of code sections. Some projects even implement a suite of integration tests, testing whether the code in different parts of the software works as a whole and (still) provides the functionality the software promises to deliver. Running these tests regularly (or continuously) is the job of a Continuous Integration (CI) solution. The results of the tests are displayed to the project members and maintainers, enabling them to identify problems and react if errors occur.

Using Codeberg's instance of Woodpecker CI

Codeberg provides a Woodpecker CI instance at ci.codeberg.org.

Onboarding requires a few manual steps, as to prevent the abuse of Codeberg's limited resources. You will need to request access by filling out this form. After submitting, a Codeberg volunteer will review your request and grant you access if your use case is appropriate.

In order to ensure a fast approval, please take a minute to read about the criteria that your project has to adhere to.

If your request gets approved, you will be able to login to ci.codeberg.org via your Codeberg account. To start builds for your repository, you must enable them in Woodpecker specifically using https://ci.codeberg.org/repos/add. Repositories owned by your codeberg account should automatically be available as options to select.

Caveats

For the usage of our Woodpecker instance, keep the following in mind:

  • CI access is provided as-is and might break at any time and for an undefined period of time, due to server issues, for testing and maintenance purpose or human error.
  • Resource usage must be reasonable for the intended use-case. CI requires substantial computing resources (cloning the repo and pulling the image, installing required tools, building and throwing everything away). Please try to ensure a good balance between code quality/automation and resource usage. Therefore, please consider twice how to create a good balance between ensuring code quality for your project and resource usage therefore.
  • The CI service requires manual onboarding and Woodpecker has limited Role-Based Access Control (RBAC) capabilities, which will be a problem for projects with a team-based permission structure or many individual collaborators. Issues and general feedback should be reported in our dedicated Codeberg CI feedback repository.

Usage

If you are curious about Woodpecker or are already using a third-party Woodpecker instance, please consult Woodpecker's documentation. If you wish to see examples of integrating Woodpecker-CI with codeberg, please consult the Codeberg-CI examples repository.

Custom Woodpecker Instances

You can alternatively host your own Woodpecker instance and link it to Codeberg. This will give you a lot more freedom and capabilities with the downside of having to utilize your own hardware. Please consult Woodpecker's Forgejo integration documentation for more information.

Using Forgejo Actions

Forgejo, the software Codeberg is built on, offers a CI/CD feature called Actions.

Further information such as how to run it is available in Using Forgejo Actions (Self-hosted) page.


Hey there! 👋 Thank you for reading this article!

Is there something missing, or do you have an idea on how to improve the documentation? Do you want to write your own article?

You're invited to contribute to the Codeberg Documentation at its source code repository, for example, by adding a pull request or joining in on the discussion in the issue tracker.

For an introduction on contributing to Codeberg Documentation, please have a look at the Contributor FAQ.

© Codeberg Docs Contributors. See LICENSE