FragLand / FragLand/minestat

Replace Travis with Github Actions & Plan new CI/CD pipelines

Open
#108 3 comments 0 reactions 2 assignees Claimed by @mindsolve View on GitHub
bug discussion enhancement lang: ALL new feature
Dominant language
C#
Stars
360
Forks
75
PR merge metrics
No merged PRs in 30d

Description

### Situation
* Travis CI has changed its pricing model from automatically free for Open Source to a limited manual verification approach, in which the project has to request pipeline credits.
* [Github Actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions) has been introduced as an integrated way of running CI/CD pipelines.
* [GH Actions is completely free for public projects](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions)

Due to this situation, and personal experience showing the maturity and widespread support for GH Actions, I would suggest moving from Travis CI to GH Actions.

While "simply" moving might be an option, this would also be the ideal point to retink our requirements and whishes for our CI/CD pipelines.

Based on analyis of the existing CI configuration, I have determined the current status to be as follows:
#### Current pipelines:
- Travis CI:
- Building of the C#, Go, Java and Ruby versions in all PRs
- Successful build as requirement for PR merge
- AppVeyor:
- Building of the C# version in PRs
- Successful build as requirement for PR merge
- CodeFactor:
- Static code analysis for many languages
- Successful check as requirement for PR merge

### Proposal:
- CodeFactor (*same as before*)
- GH Actions:
- Pipeline for Commit/PR build
- Successful build as requirement for PR merge
- Should support all language "flavours" of minestat
- Pipeline for End-to-End tests (long-term goal)
- Check functionality of flavour against list of server versions
- Successful checks as requirement for PR merge
- Release pipeline (long-term, to be discussed)
- Pipeline for automatically packaging a new release of a specific flavour and deployment to repositories (e.g. npm, pypi, nuget)
- Triggered by specific commit message by authorized user

@ldilley: Did I correctly interpret the current configuration? What do you think about the proposal, and what would you want the ideal CI/CD pipeline to do?

### Progress
- [x] Successful build required for PR merge
- [x] Covered for languages supported by CodeQL
- [ ] Perform protocol tests against a server which must pass for PR merge
- [ ] Handle the publishing of npm, NuGet, PyPI, etc. packages (partially validated)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.