GameServerManagers / LinuxGSM

The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
https://linuxgsm.com
MIT License
4.25k stars 813 forks source link

[LinuxGSTS] Linux Game Server Test Suite #1658

Open dgibbs64 opened 6 years ago

dgibbs64 commented 6 years ago

I have been thinking of a way to run automated tests for LinuxGSM and feed them back in to a GitHub repo. I currently have this repo https://github.com/dgibbs64/SteamCMD-Commands-List and I plan to design something similar for game server testing.

As we know sometimes updates break game servers or requirements are updated. I want to run a bunch of tests on hopefully all game servers using LinuxGSM once a day to feedback info about various info about the servers and spot any changes. This info I plan to keep up to date in a github repo.

So far I have come up with the following tests:

I am not sure how feasible all the tests are but I think will be worth a try.

Each of these tests will run on a servers once a day and feedback. The plan also is to try out docker containers or VPS servers with different distros to allow testing.

This test suite is designed for testing the game server rather than LinuxGSM which I currently use Travis-CI for.

This idea is something I think will probably take quite a while (around a year) but be a great project for me to do some automation and hopefully learn new stuf while giving some useful info to game server admins and the LinuxGSM project.

dgibbs64 commented 6 years ago

I have been investigating tools like Puppet, Jenkins and Vargrent. But its very complicated and im not sure where to start. I have a good idea in my head what I want to do but dont know the best tool for it.

There are two main areas I need to look at

Development environment Testing environment

The development environment is for LinuxGSM development allowing me to deploy either a vanilla LinuxGSM install (for new servers) or one with an existing game server installed. I would like to be able to use this environment for developing LinuxGSM testing code on multiple distros. So I was thinking something like an Ubuntu VM with docker containers for various distros.

The Testing environment is for testing game servers as detailed above. Doing daily checks on all game servers and reporting various information in a useful manor so we know if the server works on various distros and gather useful data about the servers.

I am a little out of my depth with this and don't have time to spend weeks testing different systems that I could be using creating new servers etc. So I am looking for anyone who has some experience with deployment/devops type stuff to give me pointers and reccomendations. Thanks

dgibbs64 commented 6 years ago

Ansible looks like a great option for this. With the ability to create and destroy droplets quickly it is possible to deploy a server rsync a file repo run tests report back and destroy