Skip to content

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

Description

@mindsolve

Situation

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

  • Successful build required for PR merge
  • 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)

Metadata

Metadata

Labels

bugSomething isn't workingdiscussionDiscussion relatedenhancementEnhance an existing featurelang: ALLAffects all versions of minestatnew featureRequest something new

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions