noxworld-dev / opennox

OpenNox main repository.
GNU General Public License v3.0
469 stars 25 forks source link

Setup CI #10

Closed 2asoft closed 4 years ago

2asoft commented 4 years ago

Project must build for all of the following targets (more may be added in the future):

A quick exploration of CI tooling. List taken from wikipedia and each item briefly explored.

Tool Price Setup required
Apache Gump free self-hosted
AppVeyor free for public repos
29$/mo cheapest
None, only access to repo
Azure DevOps cheapest free with provided 1800 minutes/mo, and unlimited minutes with 1 free self-hosted agent None, only access to the repo
Self-hosted unlimited-minutes agent requires custom set up(locally or on a VPS, etc)
Bamboo free for OSS
paid for closed
self-hosted
Buddy free plan: 5 projects / 500 MB cache /1 GB RAM & 2vCPU performance120 execution limit /mo.
cheapest paid plan 75$/mo: 20 projects, 10 GB cache storage, 3 GB RAM & 2 vCPU
Access to repo
Buildbot free self-hosted
BuildMaster free version available, but self-hosted
paid cheapest 2995$/year, seems self-hosted too
self-hosted?
GitLab ? looks like requires repo to be in Gitlab
GoCD free self-hosted
Jenkins free self-hosted
OpenMake Software Meister paid self-hosted?
Semaphore free for OSS
cheapest 10$/mo for 1300 minutes
None, only access to the repo
Travis CI free for public repos
63$/mo cheapest
None, only access to the repo
TeamCity free self-hosted
beta of hosted requires sign up, requirements/availability unclear
Vexor paid signups no longer accepted
GitHub Actions free, 2000 minutes/month None

Some of these are not free for private repos, which rules them out for now. All self-hosted options are not considered currently due to lack of any infrastructure to set them up, and belief that hosted options should cover the current needs. GitLab is ruled out because we are currently not interested in moving to it.

Remaining: Tool Price Setup required Platforms supported
Azure DevOps cheapest free with provided 1800 minutes/mo, and unlimited minutes with 1 free self-hosted agent None, only access to the repo
Self-hosted unlimited-minutes agent requires custom set up(locally or on a VPS, etc)
All currently required
Buddy free plan: 5 projects / 500 MB cache /1 GB RAM & 2vCPU performance120 execution limit /mo.
cheapest paid plan 75$/mo: 20 projects, 10 GB cache storage, 3 GB RAM & 2 vCPU
Access to repo ?
GitHub Actions free, 2000 minutes/month None All currently required

Of these options, GitHub actions and Azure DevOps appear to be most suitable. GitHub Actions does not require additional accounts and any other setup(except the actions, of course), and is the first choice. Azure DevOps is second choice, and will be explored if GitHub Actions is for any reason insufficient.

dennwc commented 4 years ago

What CI do you think we can use?

The repo will remain closed, thus services like TravisCI will require a paid account.

Github Actions is interesting, but I don't know how the pricing works for it.

Evengard commented 4 years ago

For Windows builds, there is almost only AppVeyor, which is indeed paid for closed-source projects.

Evengard commented 4 years ago

https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/ We may be able to use this for Windows builds though. 1800 minutes per month is better than nothing =)

dennwc commented 4 years ago

Windows+MinGW can be compiled with Linux+MinGW (cross-compilation for Windows). But I'd prefer to have a "native" Windows build, of course.