Here at Softon, when we start working with our Digital Team* we start noticing the amount of time wasted to upload changes in our testing environment so QA could start testing the website/app. So we look for ways to improve this non productive time that can be use for development. We decide to add another layer to our communication process and added a Jenkins Server, where we configure a Project Template that allow us to easily create new projects as soon as we are doing our internal kickoff, and just modify a few settings – saving tons of time.
In our template we are doing the following things:
- There is a WebHook configured in our Bitbucket repository that sends a message to Jenkins every time there is a new commit to the Dev Branch (we use Git Flow to manage our code). In Jenkins we added a plugin that reads this message and triggers the Jenkins project execution.
- Next thing is to run gulp.
- Then check for syntax errors in the project.
- If there are no errors, we run a sniffer that review if the checkin files follows the recommended programming standards.
- Then we push the code changes to the testing server.
- Once the process is finish we send an alert to the Slack Channel, notifying the CI execution is complete and present the errors if any, or success when no errors found.
- Usually this process can take 1-2 minutes (it can vary on how many Nodes/Slaves and Executors your Jenkins is supporting), then the developer can check the changes in the Test Server and make sure everything was pushed correctly.
Pushing messages to Slack, allow all the other stakeholders of the project know there was a new commit in the code, if there were any syntax / programming standard errors, and that new code is on the Test Servers. Once the Jira tickets are move to the QA column, the QA Team can start testing right away.
Our team also have extensive knowledge in AWS and we have been able to create Continuous Integration projects for our clients, were beside steps explanied in this article, we can add Cloud Formation Templates, CodeDeploy, S3, CloudFront, Route53, RDS, EC2 with Auto Scaling among the great services AWS offers that are all script compatible thru AWS Command Line Interface or AWS CLI, and can be easily called from Jenkins.
* Our Digital Team is in charge of WordPress, Drupal, Laravel, CodeIgniter, Bootstrap, Angular, React.js and NodeJS Projects. Click here if you want to know more about the technologies were we are expert