Skip to content

As CodeFloe has a strong focus on automation of any sort itself, providing sophisticated CI/CD solutions to its users is a must.

In accordance with its federated philosophy, CodeFloe does not offer just a single CI/CD solution (which for other services is usually bound to their platform exclusively), but two services, of which one is even forge-agnostic, i.e. it can be connected to other code platforms without the need to change workflows.

It is up to you which one to choose. Crow CI is an independent, centrally administrated CI/CD solution. Forgejo Actions is integrated into the platform and configured on a per-repo basis, following and reusing the same approach of GitHub Actions.

Crow CI

Crow CI is a FOSS CI/CD app written in Go. It is a fork of Woodpecker CI and developed/maintained by the CodeFloe team. If you have a CodeFloe account, you can login to ci.codefloe.com and activate the repos you have access to.

If you encounter usage issues and/or have feature requests, issue them directly in the Crow CI repository.1

Forgejo Actions

Forgejo Actions is developed by the Forgejo team. It allows GitHub-actions based workflows and is directly integrated into Forgejo, the software powering CodeFloe. At the time of writing (early 2025), Forgejo Actions is still in its early stages of development and lacks some features compared to Crow CI.

If you encounter usage issues and/or have feature requests, issue them directly in the respective Forgejo repository.

Limitations

As the hosted runners are open to everyone and run in a semi-public context, the security settings must be "relatively strict". This means that certain features, such as running containers as privileged or mounting external volumes, are not available.2

Note

While this sounds a bit like a downside of these apps, it is not. The same applies to all hosted runner services, including GitHub Actions and GitLab CI.

Hardware

CodeFloe provides the following servers to process CI/CD jobs:

Name CPU Memory Architecture Job Capacity
ci-amd1 16 64 amd64 10
ci-arm1 8 16 arm64 3
gaia 10 32 arm64 5

Each workflow/job has the following limits:

  • CPU: 4 cores
  • Memory: 3GB

Note

There is currently no limit in place for the overall amount of (parallel) builds per user or the build duration per user/org. Such limits will be added in the future.

In the meantime, we appeal to users to be mindful of their usage and avoid excessive resource consumption. Excessive usage or abuse will be detected and addressed.

Info

If enough funds are available (through donations), the CI server fleet will be expanded in the future.

The current resource capacity is already able to process a large number of jobs for many users and provided for free by CodeFloe as a platform.

Examples

The following non-exhaustive list holds exemplary workflows for the respective service.

Tip

You might also spot neat workflow definitions by inspecting the workflows of the CodeFloe or other organizations on the platform.

Connecting your own agent/runner

Note

This is only supported for Crow CI

Crow CI

Follow the documented process to add a new "public" runner from the Crow CI docs.

Use the following settings in the agent config:

CROW_SERVER: ci.codefloe.com
CROW_GRPC_ADDR: grpc.ci.codefloe.com

Important

You can set additional CROW_AGENT_LABELS. By default, the agent will be restricted to the Crow org_id for which you created the agent token in the Crow UI.

Note

There is no way to configure an agent to process builds of multiple users/organizations. You need to add multiple agents to achieve this.

Actions

There's an existing guide in the Codeberg Documentation which can be followed to add a self-hosted runner for Actions. Just make sure to use https://codefloe.com as the argument for the --instance flag.

Tip

Besides the deployment methods listed in Codeberg's documentation, there is also an Ansible role forgejo_runner in the devxy.cicd collection, which is used to deploy the hosted runner on CodeFloe.


  1. If you wonder why Crow CI is hosted on Codeberg and not on CodeFloe: when starting out, the Crow CI org was set up on Codeberg. CodeFloe did not exist at the time. Crow CI might be migrated to CodeFloe in the future. 

  2. Theoretically, it is possible to do so when you attached your own runners. However, the flexibility of detecting this must first be added to the respective services. Right now, there is no way to allow it only for certain agents.