Avid developer who has a passion for | 

Learn more about myself and what makes me so passionate about various forms of software development.

Accelerate your PHP deployment using TeamCity

Posted On 2019-09-21

I use TeamCity for my CI needs, I love how easy it is to use and how it reduces the amount of boilerplating.

One thing I didn't like was how long it took to run, copying over 3000 files totalling 12MB, which was taking close to 20 minutes. That isn't an ideal amount time to have a website down, so I started to think of ways to speed up my deployment job.

The solution is actually pretty simple, and I don't know why I never considered it before.

The solution was compressing the contents I wanted to push up to my server and then extract it on the server

tar -czvf website.tar.gz public_html config vendor

once the compressed folder is on the server I extract the contents

tar -xzvf website.tar.gz

I knew this was going to be faster but I was besides myself on just how much faster. I took a screenshot that shows the duration for a job that ran the regular way and the way with the compressed folder.

the regular method of uploading a file 1 at a time took 13 minutes, doing it the compressed way, 26 seconds!

Before & after

26 seconds! I did not expect it to be that fast. I highly recommend compressing your contents.

I would not only recommend this for PHP projects but even for projects that are compiled. I don't have any data to show for that case, but I'd think it would benefit from only needing to be uploaded once.