LemmyNet / jerboa

A native android app for Lemmy
GNU Affero General Public License v3.0
1.16k stars 166 forks source link

Consider switching CI to GitHub actions #799

Closed twizmwazin closed 8 months ago

twizmwazin commented 1 year ago

Describe the feature request below

Using GitHub actions for Jerboa's CI would introduce a number of advantages:

There are a few downsides, though in my personal opinion they are minor:

itsmegb commented 1 year ago

A note to add on this, @dessalines mentioned a reluctance to switch to GH actions as the project may eventually move off of GH.

Gitea are currently working on Gitea Actions which aims to be a GH Actions compatible CI/CD pipeline for Gitea.

https://docs.gitea.com/next/usage/actions/overview

Just thought it was worth mentioning.

twizmwazin commented 1 year ago

I personally think switching off of GitHub would be a significant mistake. I understand the concerns about avoiding big tech and wanting to decentralize, which is part of the entire spirit of projects like this. However, it also significantly reduces visibility of the project and imposes a barrier for newcomers to contribute. This project has taken off over the last couple of weeks with dozens of contributors, and I am confident in saying that if the project was hosted anywhere else, many of those people wouldn't have bothered if they had to register and set up an account there. GitHub makes open source accessible, regardless of feelings about their ownership and governance.

dessalines commented 1 year ago

We were also asked to switch away from the WoodpeckerCI we use on lemmy (and all its associated projects), to github actions.

Pros of woodpecker

Cons of woodpecker

Pros of github CI

Cons of github


Switching away from github is more of a "when", not an "if" scenario. When federated issue trackers become mature, we, likely along with most projects, will switch away from github. When that happens, I'll be glad we didn't tie ourselves to github's proprietary CI.

If woodpecker CI is missing features, then let's support it by adding those. It is a fully open source project unlike github, so you can actually improve it with features you'd like to see.

twizmwazin commented 1 year ago

Regarding the cons of Github CI:

Vendor-lock in. At any moment, they could start charging for it, or restricting it. This happened to us with drone-ci, which woodpecker is a community hard-fork of.

This isn't a concern in my opinion. While yes, I agree that Github could at any point change their policies and effectively force a migration away, CI infrastructure can be designed in such a way that this is trivial.

Given those two points, a pipeline that consists of a custom docker image and a script that is executed in that environment can be easily ported to most CI infrastructure. At that point, Github is only providing infrastructure, and porting to a new system would be trivial. We wouldn't be meaningfully tied in at all.


They get all your secrets, which are necessary for many of our deploys, such as lemmy-js-client, joinlemmy-site, and lemmy. Jerboa could also potentially do deploys from CI, and I wouldn't want to give github all my secrets.

See my point above about self-hosted runners for this specific scenario. We also don't have to switch everything to github actions, either. It would be very reasonable to do pull request CI, which requires nothing secret, on github CI, and then continue using another fully self-hosted solution like woodpecker for releases. This would alleviate the usability and performance issues that make everyday development hard while not giving Github anything, or risking github having access to secrets.


Its more work, not less, for us to switch our CI system to a proprietary one in the middle of development.

As someone pointed out on Element, someone already has a fork where they have done this for us that we could merge in. If their implementation is not good enough, I and others have volunteered to take this on. I do this professionally for my day job, and am more than capable of doing the transition.


When federated issue trackers become mature, we, likely along with most projects, will switch away from github.

I love the optimism, but I think this is incredibly unlikely. Maybe the die-hard free software community will migrate away, but based on existing trends in software most people are going to prefer pragmatism and convenience over ideology and use whatever is free and readily available.