Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rolling hassle-free builds using Fastlane

Rolling hassle-free builds using Fastlane

App deployments have a lot of stages wherein a build must pass through. Running tests, building a release binary to even notifying your team. Doing all of these manually is costly.

Fastlane provides a plethora of tools which help automate deployments making them predictable and cheap.

In this talk, we look into setting up the deployment pipeline using some of the most amazing tools Fastlane provides with its seamless integration for quick, hassle-free app deliveries

Ashish Krishnan

December 15, 2018
Tweet

More Decks by Ashish Krishnan

Other Decks in Technology

Transcript

  1. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles
  2. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles 5. Uploading the build
  3. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles 5. Uploading the build 6. Managing App store
  4. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles 5. Uploading the build 6. Managing App store 7. Screenshots?
  5. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles 5. Uploading the build 6. Managing App store 7. Screenshots? 8. Release
  6. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles 5. Uploading the build 6. Managing App store 7. Screenshots? 8. Release 9. Post it to Slack / Tweet
  7. 1. Running tests 2. Bumping up the version 3. Choosing

    the right scheme 4. Code signing / profiles 5. Uploading the build 6. Managing App store 7. Screenshots? 8. Release 9. Post it to Slack / Tweet 10. git tags
  8. (work/tab) $ atom fastfile platform :ios do before_all do ENV["SLACK_URL"]

    = "https://hooks.slack.com/services/some-web-hook ensure_git_status_clean # some-other configuration end desc "Submits a new Beta Build to TestFlight" lane :beta do cocoapods match(app_identifier: "work.kite.tab.beta", type: "appstore") gym(configuration: "Internal Beta") pilot(app_identifier: "work.kite.tab.beta") end
  9. (work/tab) $ atom fastfile platform :ios do before_all do ENV["SLACK_URL"]

    = "https://hooks.slack.com/services/some-web-hook ensure_git_status_clean # some-other configuration end desc "Submits a new Beta Build to TestFlight" lane :beta do cocoapods match(app_identifier: "work.kite.tab.beta", type: "appstore") gym(configuration: "Internal Beta") pilot(app_identifier: "work.kite.tab.beta") end
  10. (work/tab) $ atom fastfile platform :ios do before_all do ENV["SLACK_URL"]

    = "https://hooks.slack.com/services/some-web-hook ensure_git_status_clean # some-other configuration end desc "Submits a new Beta Build to TestFlight" lane :beta do cocoapods match(app_identifier: "work.kite.tab.beta", type: "appstore") gym(configuration: "Internal Beta") pilot(app_identifier: "work.kite.tab.beta") generate_release_notes end config
  11. (work/tab) $ atom fastfile platform :ios do before_all do ENV["SLACK_URL"]

    = "https://hooks.slack.com/services/some-web-hook ensure_git_status_clean # some-other configuration end desc "Submits a new Beta Build to TestFlight" lane :beta do cocoapods match(app_identifier: "work.kite.tab.beta", type: "appstore") gym(configuration: "Internal Beta") pilot(app_identifier: "work.kite.tab.beta") generate_release_notes end context
  12. (work/tab) $ atom fastfile platform :ios do before_all do ENV["SLACK_URL"]

    = "https://hooks.slack.com/services/some-web-hook ensure_git_status_clean # some-other configuration end desc "Submits a new Beta Build to TestFlight" lane :beta do cocoapods match(app_identifier: "work.kite.tab.beta", type: "appstore") gym(configuration: "Internal Beta") pilot(app_identifier: "work.kite.tab.beta") generate_release_notes end actions
  13. (work/tab) $ atom fastfile platform :ios do before_all do ENV["SLACK_URL"]

    = "https://hooks.slack.com/services/some-web-hook ensure_git_status_clean # some-other configuration end desc "Submits a new Beta Build to TestFlight" lane :beta do cocoapods match(app_identifier: "work.kite.tab.beta", type: "appstore") gym(configuration: "Internal Beta") pilot(app_identifier: "work.kite.tab.beta") generate_release_notes end custom actions
  14. (work/tab) $ atom appfile for_lane :qa do name "Kite Tab

    (QA)" app_identifier "work.kite.tab.qa" team_id "" end for_lane :release do name "Kite Tab" app_identifier "work.kite.tab" team_id "" end
  15. (work/tab) $ atom appfile for_lane :qa do name "Kite Tab

    (QA)" app_identifier "work.kite.tab.qa" team_id "" end for_lane :release do name "Kite Tab" app_identifier "work.kite.tab" team_id "" end context
  16. (work/tab) $ atom appfile for_lane :qa do name "Kite Tab

    (QA)" app_identifier "work.kite.tab.qa" team_id "" end for_lane :release do name "Kite Tab" app_identifier "work.kite.tab" team_id "" end lane-specific setup
  17. 3

  18. 2

  19. 1