In today's world, software development is highly complex and often has large teams of developers working on small pieces of a larger software project. This course will go over the basic principles of using a continuous integration system effectively to constantly improve software. We're going to describe the different stations of continuous test, build, integration and deploy processes required for DevOps practices and apply best practices for quality software management, and tooling to accomplish iterative software build & test processes. You will be able to create an automated job for continuous build, test, integrate, and deploy with Travis CI and use branching and project workflows to enhance the quality, speed and feedback loops for your software assets. We'll describe the attributes of Deterministic Builds and how they are applied within the CI pipeline and use the Continuous Integration data and analytics to measure and improve the health of your software assets. Automation at scale is now more achievable for software development teams, as continuous integration makes it possible.
Continuous Integration (CI) Tenets and Basic Features
In this module, you will set-up everything you need to succeed in this course. This includes setting up a GitHub account and GitHub Desktop as well as Travis CI, Docker, and the Atom hackable text editor. You will be able to explain how to focus to make confident builds and to make builds repeatable, reliable, and reusable. You will be able to practice using Travis CI to achieve high-quality builds and discuss the importance of flow control, logging and automation. You’ll also be able to start working on your Probot Hello app.
Managing the CI Environment and Performing with Travis CI
In this module, you will be able to discuss how flow control processes help manage speed and state of how an automation will work. You'll also be able to describe how automation will work in a continuous integration environment. You will be able to use Travis CI to perform automation for continuous integration. You will be able to discuss how you can build the instructions for your automation that are required to capture all of the requirements of what it will take to build, test, and package your software so that it is ready to be shipped.
Connecting Continuous Integration to GitHub and CI Status for Shipping Changes
In this module, you'll be able to describe how Webhooks work and discuss how Webhooks provide traceability and integration to connect CI to other tools. You'll be able to explain how to use software development lifecycle tools to implement DevOps capabilities. You'll also be able to explain how to secure sensitive data or secrets and apply acquired knowledge with tools such as Travis CI. You will be able to discuss various types of automated scheduling and apply scheduling concepts using Travis CI.
Creating a Reliable Continuous Integration System and Log Analytics
In this module, you'll be able to discuss key factors to achieve deterministic builds and explain ways to improve CI environment to avoid failures due to key factors. You'll be able to describe importance of measuring and monitoring your CI environment as well as discuss key indicators to give assurance that CI system is providing required reliability. You will be able to apply techniques for classifying build failures and discuss how classifying build failures increases confidence of development teams on reliability of feedback loops.