Continuous Integration & Continuous Deployment
Automation of development and deployment flows are really important these days. Not only that not many companies can afford a dedicated DevOps team to handle the releases, but also that the human factor might slow down a lot of the things in the delivery process. This workshop is aimed at teaching participants how to create an automated pipeline that will increase your code quality by performing various checks and deliver the builds to the testers or the stores with simple git merges.
a. Introduction to CI & CD
We’ll start from explaining the ideas behind the terms like continuous integration, continuous delivery and automated testing. We’ll highlight the benefits that come out of setting up such systems and present CircleCI – a service that offers remote containers to work with.
b. Setting up a container with CircleCI
In this section we present the insights of CircleCI configuration. Participants will learn the structure of the `config.yml` file. We’ll show how to use docker containers, define jobs and workflows and execute them.
c. Performing quality checks on a container
After creating the scaffolding of our CI system, we’ll dive deeper into defining the jobs required to perform quality checks on our Pull Requests. We’ll set up tools like Eslint, Flow, and Jest, and run them on a remote machine.
d. Improve PR reviews with Danger
When working in bigger teams, sometimes it’s hard to rely on a developer to completely check all the PR. We’ll introduce danger, a tool that is used to review the content of PRs; we’ll show how to integrate it and how to set up a CI system to help us with all PR reviews.
e. Introduction to fastlane
Fastlane is a tool that helps us automate development and release processes within mobile apps. We’ll present this tool and all of its functionalities.
f. Code signing made easy (match)
Code signing is a really tricky aspect of iOS development. With fastlane it becomes super easy thanks to `match`, a new approach to iOS code signing: Share one code signing identity across your development team to simplify your code signing setup and prevent code signing issues.
g. Building the app with fastlane
After having code signed with match, we’ll dive deeper into app-building methods like gym or gradle. We’ll teach participants how to build the iOS and android apps and what the possibilities in these areas are.
h. Uploading the archive to AppCenter/TestFlight
The final step is to upload the archive into beta-distribution systems. We’ll present the methods to upload the archive to different services.