Step 1. The developer pulls the latest code from the
version control system with Git. This ensures
that the developer has the most recent changes
and is not working with an old version.
Step 2. The developer makes changes to the code,
adding new features or fixing bugs. The
developer also writes test cases that will be used
to automatically test the new code to software
functional requirements. The developer
eventually stages the changes in Git for
submission.
Step 3. The developer uses Git to push the code and
tests to the version control system (for example,
GitHub), synchronizing the local version with
the remote code repository stored in the version
control system.
Step 4. The continuous integration server, such as
Jenkins, has a login that monitors GitHub for
new code submissions. When Jenkins sees a
new commit, it is able to pull the latest version
and starts an automated build process using the
test cases.
Step 5. Jenkins kicks off the automated build of a
testing environment for the new software build.
It is possible to use Python scripts, Ansible, or
other infrastructure automation tools to build
the testing environment as close to production
as possible.
Step 6. Jenkins executes various automated testing,
including unit testing, integration testing,
smoke testing (stress testing), and security
testing. When all the tests are finished, the
results are sent back to Jenkins for compilation.
Step 7. Jenkins sends the test results to the developer
for review. They can be sent via email, but a
more modern way of alerting the developer is
through a collaboration tool such as Webex