Codeberg/Community
54
325
Fork
You've already forked Community
12

Can I use the CI for multiplatform Rust projects? #2150

Open
opened 2025年09月26日 20:02:34 +02:00 by BillyDM · 5 comments

Comment

Hello! I am considering Codeberg for a large open source application written in Rust.

My main concern is CI. I would like to have the following actions:

  • An action that runs tests and checks for doc errors and formatting issues when someone submits a PR.
  • An action that builds and publishes binary releases for Linux, Windows, and Mac (both x86 and Apple Silicon) for each new release.

Is this something that is possible with Codeberg's CI system?

The rust compiler is quite resource intensive on large projects, so I'm not sure I would be able to use the "tiny"/"small" forgejo runners.

### Comment Hello! I am considering Codeberg for a large open source application written in Rust. My main concern is CI. I would like to have the following actions: * An action that runs tests and checks for doc errors and formatting issues when someone submits a PR. * An action that builds and publishes binary releases for Linux, Windows, and Mac (both x86 and Apple Silicon) for each new release. Is this something that is possible with Codeberg's CI system? The rust compiler is quite resource intensive on large projects, so I'm not sure I would be able to use the "tiny"/"small" forgejo runners.
Author
Copy link

For reference, on GitHub I have a project that does the former action:
https://github.com/BillyDM/Firewheel/blob/main/.github/workflows/ci.yml

And a project that does the latter:
https://github.com/BillyDM/vitalium-verb/blob/main/.github/workflows/build.yml

For reference, on GitHub I have a project that does the former action: https://github.com/BillyDM/Firewheel/blob/main/.github/workflows/ci.yml And a project that does the latter: https://github.com/BillyDM/vitalium-verb/blob/main/.github/workflows/build.yml
Author
Copy link

Hmm, I might be able to use something like this to cross-compile binaries for non-Linux systems. https://github.com/cross-rs/cross

Hmm, I might be able to use something like this to cross-compile binaries for non-Linux systems. https://github.com/cross-rs/cross
Author
Copy link

Ok, I suppose I don't really need to have a CI to build binary releases. I can just build them on my local machines.

As for the CI to run cargo test for pull requests, I see there is an example here https://codeberg.org/Codeberg-CI/examples/src/branch/main/Rust/.woodpecker.yaml.

However, since this will be quite a large project, is there any way to cache dependency builds to speed up builds and to reduce the load on the build server?

Ok, I suppose I don't really *need* to have a CI to build binary releases. I can just build them on my local machines. As for the CI to run `cargo test` for pull requests, I see there is an example here https://codeberg.org/Codeberg-CI/examples/src/branch/main/Rust/.woodpecker.yaml. However, since this will be quite a large project, is there any way to cache dependency builds to speed up builds and to reduce the load on the build server?
Author
Copy link

Hmm, there is this plugin, but it seems I may need an S3 server to use it? https://woodpecker-ci.org/plugins/sccache

Hmm, there is this plugin, but it seems I may need an S3 server to use it? https://woodpecker-ci.org/plugins/sccache
Owner
Copy link

Generally, CI/CD on codeberg supports your use case. However, you'll need to check for yourself if it meets your requirements.

Please understand that we have different CI/CD offers. A hosted Woodpecker CI instance where you need to request access first, and our generic Forgejo Actions offer that currently has limited resources per run to protect against resource abuse.

Generally, CI/CD on codeberg supports your use case. However, you'll need to check for yourself if it meets your requirements. Please understand that we have different CI/CD offers. A hosted Woodpecker CI instance where you need to request access first, and our generic Forgejo Actions offer that currently has limited resources per run to protect against resource abuse.
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Labels
Clear labels
accessibility

Reduces accessibility and is thus a "bug" for certain user groups on Codeberg.
bug

Something is not working the way it should. Does not concern outages.
bug
infrastructure

Errors evidently caused by infrastructure malfunctions or outages
Codeberg

This issue involves Codeberg's downstream modifications and settings and/or Codeberg's structures.
contributions welcome

Please join the discussion and consider contributing a PR!
docs

No bug, but an improvement to the docs or UI description will help
duplicate

This issue or pull request already exists
enhancement

New feature
infrastructure

Involves changes to the server setups, use `bug/infrastructure` for infrastructure-related user errors.
legal

An issue directly involving legal compliance
licence / ToS

involving questions about the ToS, especially licencing compliance
please chill
we are volunteers

Please consider editing your posts and remember that there is a human on the other side. We get that you are frustrated, but it's harder for us to help you this way.
public relations

Things related to Codeberg's external communication
question

More information is needed
question
user support

This issue contains a clearly stated problem. However, it is not clear whether we have to fix anything on Codeberg's end, but we're helping them fix it and/or find the cause.
s/Forgejo

Related to Forgejo. Please also check Forgejo's issue tracker.
s/Forgejo/migration

Migration related issues in Forgejo
s/Pages

Issues related to the Codeberg Pages feature
s/Weblate

Issue is related to the Weblate instance at https://translate.codeberg.org
s/Woodpecker

Woodpecker CI related issue
security

involves improvements to the sites security
service

Add a new service to the Codeberg ecosystem (instead of implementing into Gitea)
upstream

An open issue or pull request to an upstream repository to fix this issue (partially or completely) exists (i.e. Gitea, Forgejo, etc.)
wontfix

Codeberg's current set of contributors are not planning to spend time on delegating this issue.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Codeberg/Community#2150
Reference in a new issue
Codeberg/Community
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?