Hello there. I'm at a point where I have to set up a continuous integration environment. I have contributed to projects using CI before, but I have never set it up. I roughly know what it is supposed to do, but I could definitely use some help.
In my head I'm thinking something like this is what should happen (I'm using this for a PHP project):
pre-commit
- run unit tests
- check if Sass compiles
- check if JS compiles (using Webpack)
- if everything goes well: commit
post-push
- run the same checks as before (as we cannot be sure that a client has actually tested his code before pushing)
- composer install
- compile Sass
- compile JS (using Webpack)
- if everything goes well: deploy
deployment
- Move the whole build to the web server root so that our new build is now live.
Now the questions that I have: how do I automate these processes? Do I locally just use a task runner? What tools could I use to set-up CI on our webserver? Thanks for the feedback!