DevOps for Your Mobile App From Dev to Deployment DevOps for Your Mobile App
Seth Valdetero Senior Development Consultant @valdetero valdetero@gmail.com linkedin.com/in/valdetero github.com/valdetero sparkhound.com/pages/blogs.aspx
Agenda DevOps Visual Studio Team Services (VSTS) Build Agents HockeyApp Bitrise
DevOps …automating the process of software delivery and infrastructure changes. It aims at establishing an environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably. en.wikipedia.org/wiki/DevOps
DevOps Continuous Integration Continuous Delivery Continuous Deployment Continuous delivery is sometimes confused with continuous deployment. Continuous deployment means that every change is automatically deployed to production. Continuous delivery means that the team ensures every change can be deployed to production but may choose not to do it, usually due to business reasons. In order to do continuous deployment one must be doing continuous delivery. en.wikipedia.org/wiki/Continuous_delivery#Relationship_to_continuous_deployment
VSTS https://www.visualstudio.com/
VSTS Agent Pools Agent Queues PAT (Personal Access Tokens) / SSH Keys Needs Administrative Privileges https://<account>.visualstudio.com/_admin/_AgentPool https://<account>.visualstudio.com/<project>/_admin/_AgentQueue https://<account>.visualstudio.com/_details/security/tokens https://<account>.visualstudio.com/_details/security/keys
VSTS - Demo
VSTS Agent Pools / Queues
Build Agent MacInCloud - $30/mo per agent www.macincloud.com/pricing/build-agent-plans/vso-build-agent-plan Host your own - Free? github.com/Microsoft/vsts-agent MacInCloud Build Agent Plan: This plan is designed for Visual Studio Team Services (VSTS) users only for Continuous Integration. If you are seeking remote build capabilities for Visual Studio 2015 and Xamarin, you should instead choose from Managed Server Plans or Pay-As-You-Go Plans, with the "Enable Remote Build Port" add-on selected at the time of checkout.
MacInCloud https://app.macincloud.com/clients/manage_certificate
MacInCloud support.macincloud.com/support/tickets/new Create a support ticket (https://support.macincloud.com/support/tickets/new) if you get this error: error XA5205: The Android SDK Directory could not be found. Please set via /p:AndroidSdkDirectory. This is because the Android environment variable is not set. Blog that highlights this issue: support.macincloud.com/support/tickets/new
Host your own Download github.com/Microsoft/vsts-agent https://github.com/Microsoft/vsts-agent github.com/Microsoft/vsts-agent
Host your own http://netitude.bc3tech.net/2016/02/04/final-chapter-continuous-mobile-deployment-with-vsts/ https://dist.nuget.org/index.html #!/bin/sh curl -s -O https://dist.nuget.org/win-x86-commandline/v2.8.6/nuget.exe mono nuget.exe restore <yoursolution>.sln netitude.bc3tech.net/2016/02/04/final-chapter-continuous-mobile-deployment-with-vsts/
VSTS Agent Pools / Queues
Build Definition Extensions https://marketplace.visualstudio.com/vsts/Build%20and%20release?sortBy=Downloads marketplace.visualstudio.com/vsts/Build%20and%20release
Build Definition
Build Definition Setup
Build Definition Build / Test iOS: Create App Package -> Yes Build for Simulator -> No Advanced -> Arguments -> /p:OutputPath=bin/$(BuildPlatform)/$(BuildConfiguration)/ Android: MSBuild Options -> Additional Arguments -> /t:SignAndroidPackage
Build Definition Sign / Deploy
Build Definition Notify
Build Definition - Demo Repository -> Clean -> True If this is not set, then deploying to HockeyApp will have issues trying to find the right api/apk as multiple ones will be in the directory. Kick of build!
Build Definition VSTS Export gist.github.com/valdetero/c0cd0b4dbb36c50bb345943008df23b6 https://gist.github.com/valdetero/c0cd0b4dbb36c50bb345943008df23b6
HockeyApp https://rink.hockeyapp.net/
HockeyApp Create App(s) Setup API Tokens https://rink.hockeyapp.net/manage/auth_tokens
Bitrise https://www.bitrise.io
Bitrise Link your Github and Xamarin accounts https://www.bitrise.io/me/profile#/overview bitrise.io/me/profile#/overview
Bitrise Create your app bitrise.io/dashboard https://www.bitrise.io/dashboard bitrise.io/dashboard
Workflow Setup
Workflow Build / Test
Workflow Deploy / Notify
Bitrise- Demo
https://www.xamarin.com/dev-days xamarin.com/dev-days
Questions?
Links github.com/Microsoft/vsts-agent visualstudio.com/en-us/docs/build/apps/mobile/Xamarin windingroadway.blogspot.com/2016/05/setting-up-release-builds-with-xamarin.html blogaboutxamarin.com/xamarin-dev-ops-with-vsts-getting-started/ solola.ca/xamarin-macincloud-vsts-part1/ support.macincloud.com/support/solutions/articles/8000016614-getting-started-with-the-macincloud-vsts-build-agent-plan netitude.bc3tech.net/2016/02/04/final-chapter-continuous-mobile-deployment-with-vsts/ blog.verslu.is/xamarin/continuous-integrationcontinuous-delivery-for-your-xamarin-app-with-vsts-and-hockeyapp-part-1/ aka.ms/MobileDev1 nkdagility.com/open-source-vsts-tfs-github-better-devops/ mobilefirstcloudfirst.net/2016/03/07/continuous-deployment-of-xamarin-ios-apps-to-hockeyapp-using-vsts/
Thanks for Attending SQL Saturday Baton Rouge 2016! Speaker evaluations: Use the small square cards at the front of the classroom, give directly to speaker Speaker: Please give out 1 book ticket Book Ticket Winner: Bring your ticket to the user group booth in the main atrium to redeem (supplies limited)