To deploy a web application to the hosting server or mobile application to users, we follow a Continuous Delivery (CD) practice. The main principles are:
- The application can be deployed at any time
- The application can be deployed with the push of a button and/or more commonly by merging a pull request
- No human is involved in the whole deployment annihilating the possibilities of most common process errors
We use Semaphore to deploy (and test) the web applications that we build.
From the beginning of a project, both the staging and the production servers must be setup, and everything must be configured so that Semaphore can deploy the software to both servers.
For both iOS and Android, we also use Fastlane in the Jenkins pipelines to simplify and improve tedious build processes such as management of certificates and provisioning profiles.