Bij Maxdoro moeten we steeds meer mobile apps releasen. Daar komt veel bij kijken, zoals het hosten van de source, het bouwen van de app, het testen van het resultaat en de release naar de Apple App Store en de Google Play Store. Daarom hebben we bij Maxdoro onderzocht hoe we dit proces optimaal kunnen automatiseren.
Hierbij zijn we uitgekomen bij Azure DevOps, omdat we daarmee van code repository tot release zijn voorzien van een secure opgezette release-omgeving. Allereerst zijn we overgestapt naar de git repository die Azure faciliteert. Een andere mogelijkheid was om BitBucket te gebruiken voor de hosting. We hebben hier niet voor gekozen, aangezien we alles zoveel mogelijk Azure DevOps willen centraliseren.
Nadat we alle benodigde rechten hebben gekregen, ben ik begonnen met het inrichten van de build pipelines. Door het gebruik van Task Groups voor de verschillende stappen gedurende het build process, kan je iedere stap generiek opzetten. Ook is het mogelijk om variable groups te creëren, die gebruikt kunnen worden in de tasks groups. Door app specifieke variable groups te gebruiken is het vrij eenvoudig om een nieuwe build pipeline in te richten voor een nieuwe app.
Onze builds bestaan uit het checken van de laatste code, bouwen van de executables, signen voor de stores en opslaan van alle data die nodig is om de app naar de stores te uploaden. Deze data bevat de executable, eventuele mapping of dSYM-files en metadata die nodig zijn voor een release in de stores.
Nadat er een geslaagde build beschikbaar is in de build-pipeline, kunnen we automatisch een release pipeline starten. De Release Pipelines van de apps van Maxdoro bestaan uit het uploaden van executables naar Microsft AppCenter (inclusief mapping of dSYM-files) en zo nodig het uploaden naar Apple App Store of Google Play Store, inclusief metadata.
Betreft het een acceptance release, dan wordt deze alleen geüpload naar Microsoft AppCenter. De testers kunnen dan eenvoudig de laatste versie van de app downloaden om te testen.
Aangezien Apple het tegenwoordig niet meer toestaat om apps voor derde partijen te uploaden onder één (bedrijfs)account, kunnen de credentials van de derde partij ook veilig opgeslagen worden in de DevOps omgeving. Vervolgens kan de app via een Variable Group gebruikt worden om rechtstreeks naar het App Store Account van de klant te uploaden.
De Build Pipeline kan gescheduled naar changes kijken of continious builds uitvoeren. Vervolgens is het bij een succesvolle build mogelijk om automatisch een Release pipeline te starten. Voor het uploaden naar de stores zou een handmatige actie toegevoegd kunnen worden om te voorkomen dat een foutieve build gereleased wordt naar klanten. Dit accorderen of het handmatig starten van Release pipelines kan via het DevOps rechten-systeem gelimiteerd worden voor een aantal, daartoe bevoegde, gebruikers.
Zo zijn wij bij Maxdoro van het manueel bouwen, signen en uploaden van apps met daarbij behorende metadata, teruggegaan naar één klik op de Release button in Azure DevOps. Tel uit je winst!
Neem een kijken op onze vacature-pagina. We zijn altijd op zoek naar mobile software engineers om ons team te versterken. .
Neem gerust contact met ons op! Wij reageren op werkdagen binnen 24 uur.