Compilation workflow and Jenkins (PR #6)

Hi,

I initiate a Dockerfile to allow a common platform for test build under Ubuntu 20.04, followed by a Jenkinsfile using it.

Content of this pull request:

  • sp-tools.sh will crash easier on unhandled error, mainly if dependencies are not met
  • A Dockerfile installing all dependencies
  • A Jenkinsfile to build the project
  • Remove the usage of /dev/tty as it doesn’t work on headless environment as Jenkins
  • A completed dependencies list (mysql-dev were removed as it doesn’t exist on the 3 last LTS Ubuntu releases)

Note: Even with dependencies, the build fail as I signaled on https://github.com/GrangerHub/Stellar-Prey/issues/5

Sample Jenkins output: Stellar-Prey build on Ubuntu with Jenkins (failed) - Pastebin.com

I used Jenkins as it’s not commercial and works fine, but I could also learn to use Travis CI if needed.

GitHub

Very awesome! Support for Docker is definitely something that we want for this project! I’ll have time to look into fixing up the bash script, and look into this pull request this coming Tuesday/Wednesday.

yes, good job @Buom01 . The new Github Actions feature is probably the easiest CI/CD pipeline. I wonder if we can easily adapt your Dockerfile to be used over there.

@cengique I’m thinking about it.

In all cases I think that Jenkins is a really bad idea: It only supports host environment and docker environment. Also as it’s self-hosted, we will need to pay and manage a server to host it.
I used it because it’s FOSS, and mainly: you can reproduce its build locally, which could be really useful in some cases.

At the other hand, https://github.com/GrangerHub/tremulous use Travis-CI which is free for Open-Source. It’s fine as it’s support more platform: Windows, Linux, MacOS, FreeBSD.
It’s true that these platforms are not required to build the project, however it may really be useful for testing (at least to verify that client/server could properly be launched).
Furthermore, it sounds easier to import and adapt .travis-ci.yml from Tremulous repo.

Finally, GitHub actions seem fine as Travis-CI. GitHub Actions look close to Travis-CI in an open-source project point of view.
The only argument I have against it, is about ethics.

As I don’t know which tools GrangerHub have under hands, and because I think that I should not own the decision, it’s time to talk about it: Which CI/CD software to use ?
I’m OK to code with any of these pieces of software, as I will discover both documentations. (I didn’t use any CI software before this pull request, but it’s not hard at all too).

@Buom01 good points! If you have an ethical argument against Github Actions, then the logical solution would be to use Travis CI. You’re right GrangerHub/tremulous uses Travis CI, which is pretty reliable and @dGr8LookinSparky already has an account. If he agrees, you can probably adopt a similar .travis-ci.yml file for Stellar Prey.