Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FreeBSD CI #65

Closed
7 of 26 tasks
kraileth opened this issue Mar 24, 2019 · 9 comments
Closed
7 of 26 tasks

FreeBSD CI #65

kraileth opened this issue Mar 24, 2019 · 9 comments

Comments

@kraileth
Copy link
Contributor

kraileth commented Mar 24, 2019

No idea if this is going to succeed in the end (I'm not a programmer and completely new to the world of CI), but you never know if you don't give it a try, right? As mentioned on #51, I'm considering what would be needed to provide FreeBSD CI for DevolutionX.

Any help, comments or or suggestions would be very welcome. Let's see how far we'll get - the most sinister game ever made on a beast of an operating system should be an ideal combination! 😈

Here's a rough plan:

Phase 1

  • Do a bit of reading on the subject of Jenkins in general
  • Setup a FreeBSD VM with port-forwarding (to keep the main system clean)
  • Install Jenkins and get it started
  • Setup Nginx as a proxy and make Jenkins happy with the settings
  • Install all required packages, create build script, test it once by hand
  • Look into adding build jobs
  • Configure a simple job that clones the latest code from GH and builds DevilutionX
  • Document everything

Phase 2

  • Start over, redoing everything in a jail
  • Figure out which changes to make (if any) to make it work in a jailed environment
  • Research how additional build nods work
  • Create jails for all supported FreeBSD versions (each one for both tier 1 platforms), install all dependencies
  • Add newly created jails as additional build nodes
  • Consider security (firewall rules, permissions, jail settings, ...)
  • Document everything

Phase 3

  • Install fresh server
  • Deploy production configuration using configuration management tools (users + keys, log rotation, monitoring, ...)
  • Apply system hardening (via configuration management)
  • Create all required jails, install dependencies (via configuration management)
  • Setup Jenkins and Nginx proxy, add all build nodes (ideally mostly using configuration management)
  • Test everything

Phase 4

  • Setup dedicated server
  • Deploy everything via configuration management with as little manual actions as possible
  • Test again
  • Invite Devilution Devs
  • Bonus: Figure out how to hook the CI system into DevilutionX so that an automated build happens when changes are pushed to the Git repo (?)
@AJenbo
Copy link
Member

AJenbo commented Mar 24, 2019

That is an impressive master plan you have there :)

Did you try getting https://cirrus-ci.org/guide/FreeBSD/ up and running? It might be a lot easier.

@AJenbo AJenbo added the enhancement New feature or request label Mar 25, 2019
@grepwood
Copy link

This is where the fun begins!
@AJenbo can people like @kraileth have webhooks? AFAIK this is a good way of ensuring that approved CIs get wind of the latest commits so they can react with build efforts.

@AJenbo
Copy link
Member

AJenbo commented Mar 25, 2019

Yes, if we can set it up in a secure way.

@AJenbo
Copy link
Member

AJenbo commented May 19, 2019

FreeBSD builds were included with the latest release:
https://github.com/diasurgical/devilutionX/releases

But without a build server, it will be up to the community to make sure that the game keeps working for the platform.

@kraileth
Copy link
Contributor Author

Thanks a lot for all the work you are doing! I'll need to revisit this as time permits - unfortunately I haven't even been able to install a i386 system and build DevilutionX for a while... Hopefully next month.

@AJenbo
Copy link
Member

AJenbo commented May 22, 2019

No worries, we are still a bit off from doing a 1.0.0 release 🙂

@AJenbo AJenbo added build system and removed enhancement New feature or request labels Sep 15, 2019
@ThomasChr
Copy link
Contributor

@kraileth Any news on this?

@ThomasChr
Copy link
Contributor

@AJenbo Do we want to keep this issue open?

@AJenbo
Copy link
Member

AJenbo commented Nov 11, 2021

It's unclear how the BSD community normally handles this, and no one appears to be working on it. Lets close it.

@AJenbo AJenbo closed this as completed Nov 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants