I’d say “website” fits better than “mobile app” but I like this framing from Max Lynch:
Every production mobile app ultimately has a set of recurring tasks around integration, testing, deployment, and long term maintenance. These tasks often must be automated across a team of many developers and app projects. Building a process for these tasks can be incredibly time consuming and require specialized infrastructure experience, but is critical for the success of any serious app project.
They are talking about “Continuous Integration and Continuous Deployment,” or CI/CD.
Everybody is trying to get you on their CI/CD tooling, and it’s obvious why: it’s a form of lock-in. This stuff is hard, so if they can help make it easier, that’s great, but they tend to do it in their own special way, which means you can’t just up and leave without causing a bunch of work for yourself. I ain’t throwing shade, it’s just how it is.
So much CI/CD stuff crosses my attention:
- Max was writing about AppFlow, which is a new CI/CD thing from Ionic. I haven’t used it, but hey, it looks nice. I also have not used Semaphore but it also looks nice.
- I use Buddy on CSS-Tricks.
- At CodePen, we used to Capistrano, then moved to CodeShip, then moved to GitLab (DevOps), and are now on GitHub (Actions) configured with Pulumi. That was after checking out Azure DevOps and AWS CodeBuild. Some of it involves using tools like Serverless to help get code to AWS.
- Netlify runs my builds on anything Jamstack-y I do, which is highly configurable and deployment is assumed.
- We talked with Brian Leroux on ShopTalk who is building Begin, which is serverless CI/CD.
- It feels like the big classics are Jenkins, Circle CI, and Travis CI.
- Heroku deserves a high five for teaching developers long ago that CI/CD should be Git-based and as simple as
git push heroku master.
I’m probably missing at least 20 companies here. Like I say, everybody wants you on their system. They want you storing your secrets there. They want you configuring your permissions there.
Heroku is a easy as connecting to the GitHub branch for the related repo. When you push to the branch, deployment is automatic.
I’ve been using Google cloud build and cloud run recently for a rails app. I will say that when I started researching where to start it was a bit confusing and overwhelming. I spent a lot of time trying to set everything up in gitlab. Once I realized that a git mirror in Google cloud source was super easy to configure moving everything into the native cloud tooling made a lot more sense with cloud run. I expect I will probably set this up at least 15 different ways before I figure out the best recipe. I definitely agree that the lock-in affect is real. It’s not exactly the funnest stuff to debug when there’s build issues, let alone green builds but failing application deployments.
Curious to see any comments on the topic.
What about custom fonts in a old browser like NetFront…
Fastlane is a nice contender for react-native projects, can be hooked up to a lot of tools mentioned: https://fastlane.tools/
Personally Gitlab’s CI/CD pipelines and jobs seem to be very well documented and easy to pick up and get your pipelines working fast. Although once I learned the ways of gitlab, learning a completely different CI/CD tool now seems to be a lot of effort but I feel they all aim to achieve the same thing and that it won’t be too hard to learn another one.