In a complete development and deployment loop, these entities are involved:
- Application developers
- Source version control, i.e. Perforce or GIT
- Continuous integration system, i.e. Jenkins
- Repository manager, i.e. Nexus OSS
- Web server
How these 5 parts work together to produce a seamless development, testing, and deployment process? My understanding is below:
- Developers write code in workstation, check in/out code from/to Perforce/GIT
- Jenkins gets notified of new changes in Perforce and fetch new code from there, run testing and build
- In building the projects, Jenkins may download dependencies from Nexus
- If testing and build is successful in Jenkins, Jenkins automatically deploys the projects in the format of .jar to Nexus staging server.
From here I have some confusions as to what to do next:
- At the same time Jenkins deploys the Web application into Web server for production? or
- The staging project hosted in Nexus go to Web server if it gets approved within the team?
How does Nexus interact with Web server (the production server)?