AppVeyor can run builds on build workers of two types:
Stateful workers are “always on” Build Agent machines for which any changes are preserved between builds. For example, any Chocolatey package installed, any NuGet package downloaded or any database created stay there and “visible” for next builds. While stateful builds can drastically reduce overall build time by having everything ready and pre-heated for consequent builds they require your build scenarios to include “setup” and “teardown” code increasing complexity of your builds. This approach is recommended for builds with minimum environment changes.
Stateless build workers are virtual machines provisioned from template or reset to the initial “clean” state and dedicated to a single build. When the build is finished machine is “decommissioned”, i.e. either deleted or reverted to “clean” state and returned to the pool.
Pros:
Cons: