Continuous integration of software and testing with Jenkins, Raspberry Pi and hardware peripherals

Jenkins is an automation server. With it, we can specify a test pipeline that is triggered when new code is pushed to GitHub. Jenkins then pulls the changes, runs tests in the specified order, and reports back to GitHub whether tests have passed or not.