instruction: Show me how to configure circleci for CI/CD automation
output: GoSpotCheck Automated pipeline helps devs help customers GoSpotCheck uses CircleCI to automate and speed up releases to iOS, Android, and web applications The Challenge GoSpotCheck’s mobile surveys, AI-powered analytics, and digital photo capture tool are used by employees who work out in the field — for instance, a beverage sales rep out visiting customers. Their mobile app and cloud dashboards help 225+ enterprise brands in 70 countries manage execution, validate QA and conditions, and capture data and photos from the frontline. The company’s tagline is “reimagining how the mobile workforce works,” so naturally, a strong mobile experience is foundational to their work. The team needed to improve slow and complex deployment cycles and to be able to make frequent updates to their mobile applications in response to customer needs. They knew a more powerful CI/CD platform would be key to moving faster and assuring the quality of their mobile experience. “Our iOS developers, in particular, needed a way to efficiently provision profiles, sign certificates and get properly-signed builds into the App Store,” explains Nick Wilson, Vice President of Technical Operations at GoSpotCheck. “Prior to CircleCI, only one developer at a time could be responsible for that, so if a different developer was running the build on their laptop, they had to revoke and reprovision. It was a mess.” In addition, the Ruby on Rails monolith for the web-based application had more than 10,000 specs that were getting tested on every build. Before starting with CircleCI in 2016, builds were run on a single Mac mini, using TeamCity. Each build took over 30 minutes, and there was no real-time feedback at all — if a build failed, the team found out when the computer played the Imperial siren from Star Wars. Not only was the build and testing process slow and manual, there was no ‘pipeline’— everything was handled in an ad-hoc way, without clear gates that the change needed to pass before being pushed to production. The Solution After moving to CircleCI, the GoSpotCheck team was able to build a fully-automated pipeline for deployments to the web app, the Android app, and iOS app. “Today, our QA resource on the mobile team makes the call that the build is good to go,” Wilson says. “They pull the trigger and the production-ready build is sent to the App Store for Apple’s review, ready to be approved for release without any kind of manual intervention. Same thing on the Android side.” GoSpotCheck is now able to release a new iOS update every two weeks — about as fast as possible given Apple’s review process. For the web application, however, the team is now able to push an average of one release per day. The build process that used to take over thirty minutes now takes less than half that time. Unlike before, the team can run builds in parallel, removing serious workflow bottlenecks and speeding updates and improvements to customers. The ability to put a release into production in under 15 minutes gives the GoSpotCheck team the ability to react quickly. “There was a time when we were trying to improve a part of our external API, and it ended up affecting another part of the API that customers depended on,” Wilson remembers. The team was able to make the fix, merge it to master, and push it to production in less time than it would have taken to revert the original change. “The sea change that happened for us over the course of a couple years was removing the fear of deployments impacting the product, ” explains Wilson, referring to worry that any deployment might irreparably break something. “It used to be that pushing to production was a really big deal. By virtue of doing releases more frequently, it’s reduced that fear. It’s also given people on the executive team and in sales and support more confidence that we can act on information that we get from customers.” Why CircleCI Given the importance of GoSpotCheck’s iOS app, one of the primary reasons for choosing CircleCI was the ability to run all of their Mac build process in containers — and to automate the entire process and coordinate it with the Android app. This makes it possible for six engineers to handle development for both the Android and the iOS apps. Another major selling point was how quick it is to get up-and-running in CircleCI. “It was very easy for me to sit down and visualize how the CircleCI config needed to look in order to run all the steps,” Wilson says. “This was in spite of the fact that I had, at the time, very little experience with either Docker or with the Ruby ecosystem.” GoSpotCheck was able to port at least a dozen of their projects to CircleCI in under three months. “ The sea change that happened for us over the course of a couple years was removing the fear [of deploying]… It used to be that pushing to production was a really big deal. It’s given people on the executive team and in sales and support more confidence that we can act on information that we get from customers.” Nick Wilson | VP of Technical Operations at GoSpotCheck About GoSpotCheck Enterprise customers in 70 countries use GoSpotCheck ’s mobile app and cloud analytics dashboards to manage frontline execution across locations. Task management, image capture, machine learning, automated workflows, digital issue resolution, and advanced real-time analytics enable distributed teams to work together efficiently and save time. Companies use GoSpotCheck’s software to increase revenue, optimize labor, maintain quality and safety standards, and power profitability from the field. Industry Software Previous CI/CD Teamcity Company size SMB Region North America Languages Ruby on Rails React.js Go Scala Deploys to Google Cloud Platform (GCP) Kubernetes Heroku Apple App Store Google Play