-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replacing app center #52
Conversation
|
NODE_OPTIONS=--openssl-legacy-provider changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR title was a bit confusing because I thought Replacing app center
would be a PR with functional changes to pipelines or something rather than just a blog update 😅.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you link to the actual ADR rather than just presenting it as an image? There are links and things mentioned in the ADR for example which you might wish to click through to.
Since this is a public blog, are you sure you want to have all these code samples and yaml files etc? Sure, the secrets are obfuscated but still, you are exposing information we don't necessarily want to have publicly visible like the exact versions we use of things etc? Does it add anything for the person reading the blog? |
Yea I was talking a little bit about a similar topic yesterday with Arnav. I think the specific versions is a good point so I can certainly remove/obfuscate them. In general though I think if you remove too much the content loses it's value. @Jorg88 + @RasimKanca what do you guys think? PR env for the blog is here (note that there's an existing issue in the PR env for blogs where it doesn't show the header image) |
I think the code samples are fine, especially since Fisher took steps to ensure that the code is as generic as possible without going into too many details of our setup. I think it is quite handy for readers who have the exact same use case we do (the option to publish a white labeled version of the app). |
Does anyone actually read our blog? Do we have a number of visitors statistic recorded anywhere? |
public/posts/replacing-app-center.md
Outdated
## Why? | ||
This seems like a lot of work... Why not go with an off-the-shelf solution from something like Bitrise or Codemagic? Fair question but not the main point of this post. To look into our reasoning check out the [Benefits](#benefits) section! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: I would expect "why" to be a question to "Finding a Replacement for App Center". maybe "Why GHA" works better?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup, that makes a lot of sense. Updated!
@arnavVandebron can you leave your thoughts (in a comment is fine) on some of the nuances / troubleshooting you had to do for getting the iOS stuff working? I'd like to publish end of this week if at all possible so sometime this week would be really helpful. |
public/posts/replacing-app-center.md
Outdated
@@ -0,0 +1,648 @@ | |||
--- | |||
title: Finding a Replacement for App Center |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would argue that this article is specifically about replacing App Center with GitHub Actions and that this should be mentioned in the title.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup, good point. Updated ✅
public/posts/replacing-app-center.md
Outdated
description: App Center is closing up shop on March 31st, 2025 so what's the plan for building mobile apps at Vandebron? | ||
createdAt: 2025-01-25 | ||
coverImage: images/replacing-app-center-building-a-phone.jpg | ||
tags: [reactnative, App Aenter, GHA] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a typo here. Also might be good to add more tags (if they are used) and writing out GitHub Actions for example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed it. Thanks!
## Why GHA? | ||
This seems like a lot of work... Why not go with an off-the-shelf solution from something like Bitrise or Codemagic? Fair question but not the main point of this post. To look into our reasoning check out the [Benefits](#benefits) section! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't really understand what purpose this section serves. Perhaps it would be better to end with a section about alternatives. Those other services are also not really that off the shelf.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure how else to say it, and I'd like the keep the article more of an implementation guide than anything else. Feel free to suggest some text.
public/posts/replacing-app-center.md
Outdated
|
||
## Some notes before we get started | ||
- We use this workflow to build two apps, one of which can be white-labeled, so we have additional `app` and `white-label-release` inputs which makes things a bit trickier. You might not need that so feel free to trim stuff down and make it your own! But for us, we why we have the `env-variable-prep-android.sh` which normalizes the variable names used for secrets so those secrets and build file names, etc. can be easily used. If you just have a single app you probably don't need this script. | ||
- The code below is only for the build process. Though the ADR considered how this would affect future decisions about artifact upload automation and rolling out releases for internal testing, nothing about that is automated here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does everyone know what an ADR is? I am not saying that it needs to be explained in full in this article, but perhaps the meaning of the acronym can be mentioned somewhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated. Thanks!
public/posts/replacing-app-center.md
Outdated
|
||
## Benefits | ||
- It regularly took over 50 minutes for our mobile app to build in App Center. Part of that could have very likely be improved by adjusting App Center configurations & how we store and bundle app assets but after migrating our builds to GitHub Actions our app build times are now down to 22 minutes - More than twice as fast! | ||
- All the rest of the software at Vandebron (backend services in Scala and Python and frontend applications in Typescript + React) is built using GitHub Actions. This move brings mobile apps in line with all other software. This move to GHA for mobile builds has forced several of our mobile devs to get our hands dirty in GHA which is great because we can now play a role in the larger CICD discussions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This move to GHA for mobile builds has forced several of our mobile devs to get our hands dirty in GHA which is great because we can now play a role in the larger CICD discussions.
I understand what you are trying to say, but saying that developers were forced sounds strange to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. And hopefully nobody felt forced 😅. I changed the wording. Thanks!
#### Part 1 - Basic Setup | ||
Add the files below. Nothing in this setup should effect App Center but it is good to check in your changes to a branch and test those against the regular App Center build flow. | ||
|
||
<table> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This table requires me to scroll left and right. Is it possible to center it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- We use this workflow to build two apps, one of which can be white-labeled, so we have additional `app` and `white-label-release` inputs which makes things a bit trickier. You might not need that so feel free to trim stuff down and make it your own! But for us, we why we have the `env-variable-prep-android.sh` which normalizes the variable names used for secrets so those secrets and build file names, etc. can be easily used. If you just have a single app you probably don't need this script. | ||
- The code below is only for the build process. Though the ADR considered how this would affect future decisions about artifact upload automation and rolling out releases for internal testing, nothing about that is automated here. | ||
|
||
## Implementation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a lot of code in this article, but not a lot of explanation. Is this intentional? Is the reader supposed to know what all of this code does?
And I also see very little mention of Fastlane, despite it being a requirement for these workflows. I think this article would benefit from a good introduction, describing the setup and afterwards getting into the steps required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, the point is definitely to be more of an "implementation guide" than anything. I see what you mean though - I can add some more explanation. Will post back once that's done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a bit more information/explanation. If there's anything specific you think should also be added, definitely feel free to add it in comments - I'll add it in as well.
We know that some people do because a few interviewees have mentioned it during interview, but that's more than likely just interviewees doing their homework on us before the interview, not organic traffic. I asked Daniela if we have metrics. I checked Google Analytics and didn't see anything, but I'll post back if Daneila knows of something. I think we need to rewrite this little blog app anyway so in the future we can make sure metrics are there. |
Adds a blog post for how a mobile app dev team can create app builds using GitHub Actions. PR environment is here.