RPM's, VM's : time consuming I am constantly delivering RPM packages upon every new version of some project.

Every version is dependent on some developing prerequisites


CentOS 7
git
Some npm packages.
Some Python PIP packages
Some shared objects


I'm dealing with this issue currently with having a virtual machine for every release, and that is very convenient to release every version - just load the ova file of the specific machine and you are ready to go.

but the problem is, the overhead of dealing with virtual machines:  cloning and other operations - taking too much time.

What do you recommend in order to do it much more easier?
Have you considered setting up a build server (i.e. Jenkins, TeamCity) with disposable build agents?

If you do it in the cloud (i.e. via ec2 integration), you can literally set up an AMI with generic dependencies, then configure it to spin up a new VM for each build agent, which can be configured whichever way, and then delete the VM once you've done publishing your artifact (i.e. RPM).