One of the most profound changes in the past few years in software development is the transition from manually configuring development, testing and deployment environments to defining them in code by using some of the popular configuration automation/orchestration tools (Ansible, Chef, Puppet etc) or containers (Docker) and then storing the configuration files to version control the same way as the actual application code is stored.
Jenkins is the most commonly used automation service used in software development. In many cases, it’s first installed locally to automate everyday tasks of application building with each source code commit and launching a regression test suite after a successful build. Later as automation matures it’s made generally available or bought as a service from some cloud provider. This being said, Jenkins is the industry standard for defining software automation steps.