Reference no: EM133109244
DOT503 DevOps Tools - Torrens University Australia
Assessment - Continuous integration and testing pipeline
Learning Outcome 1: Analyse and integrate goals, terminologies, and the continuous development pipeline in a collaborative environment.
Learning Outcome 2: Evaluate and critique design practices using skillsets, knowledge, and established competencies in DevOps.
Learning Outcome 3: Implement best practices of Continuous Testing and Continuous Integration.
Task Summary
In most Continuous Integration and Continuous Delivery (CI/CD) pipelines, the first three stages are Source control, Unit testing and Build automation. In this assessment you will:
a) Implement the Source control stage
b) Implement the Unit testing stage
c) Implement the Build automation stage that performs the task of cleaning, compiling, testing and creating deployable package/executable
d) Write a 1000-words report explaining the concept of Infrastructure as Code (IaC) and how it relates to DevOps practices.
Task Instructions
Although implementation of Source control stage is independent of the choice of programming language, the implementation of Unit testing and Build automation relies on the specific programming language. Thus, you are first required to choose your favourite programming language along with a suitable unit testing framework and build automation tool. With your choice of programming language, unit testing framework, and build automation tool implement the followings.
a) Implement Source control using Git and GitHub
1. Create a free GitHub account if you do not have one.
2. Create a simplistic application in your favourite programming language and push into GitHub.
3. Create three branches from your repository named ‘feature-x', ‘feature-y', and ‘feature- z'.
4. From each branch modify one of the source files so that they would lead to merge conflicts.
5. Commit your changes in each branch and push each of the branches into GitHub.
6. In GitHub, create a pull request to merge ‘feature-x' branch into the master branch and approve the pull request.
7. From Git CLI, merge the updated master branch with ‘feature-y' branch. Resolve the conflict and push it into GitHub.
8. In GitHub, create a pull request to merge ‘feature-z' branch into the master branch. Resolve the conflict and complete the merge.
9. Commit your changes and push the master branch into GitHub.
b) Implement Unit testing
1. Create a branch named ‘unit-test' and checkout the newly created branch.
2. In your chosen Unit testing framework, write five test cases for your applications such that three test cases pass and two test cases fail. Modify your applications if required.
3. Add unit test files to your repository, commit the change and push the branch into GitHub.
4. In GitHub, create a pull request to merge ‘unit-test' branch with the master branch and complete the merge.
c) Implement Build automation
1. In your chosen build automation tools create a script to compile and test your application as well as making a deployable package or executable for your application.
2. Create a ‘Readme.txt' file with instructions on how to run the build script.
3. Add the build script and the Readme.txt file to your master branch. Commit the changes and push the changes into GitHub.
d) Write a report on Infrastructure as Code (IaC)
1. The report shall contain the link to your GitHub repository.
2. Explain the concept of Infrastructure as Code (IaC) and its benefits in the context of DevOps.
Referencing
It is essential that you use appropriate APA style for citing and referencing research.
Attachment:- DevOps Tools.rar