2.0.0 • Published 3 years ago

betalane v2.0.0

Weekly downloads
5
License
MIT
Repository
github
Last release
3 years ago

Highly inspired by Fastlane.tools the greatest Automation tool ever for your beta deployments of iOS/Android Builds, but betalane is purely made in Javascript and it's super easy to use!

Features

  • build - Building your app
  • doa_s3 - Distribute on the Air using AWS S3
  • cli - Execute any cli command

Getting Started

Make sure you have the latest version of the Xcode command line tools installed:

xcode-select --install

Installation

[sudo] npm i betalane -g

Setup

  1. Create betalane.json on the root of your project.
.
├── Example
├── Example.xcodeproj
└── betalane.json
  1. Confgiure lane and jobs in betalane.json file as shown in the following example
[
  {
    "laneName": "beta",
    "jobs": [
      {
        "job": "cli",
        "options": {
          "cmd": "cd Example && carthage update --platform iOS"
        }
      },
      {
        "job": "build",
        "options": {
          "scheme": "Example-Dev",
          "provisioningProfile": "e9890938-67cd-4e01-a197-7a43c2e355a4"
        }
      }
    ]
  }
]
  1. Add .betalane to your .gitignore file
# Betalane processing directory
.betalane

In action...

From the root of your project execute the following command

$ betalane [lane] [job]

Example 1 - excute all lanes and all jobs

$ betalane

Example 2 - excute specific lane and all it's jobs

$ betalane beta

Example 3 - excute specific lane and specific job

$ betalane beta build

Documentation

build - Building your app

{
  "job": "build",
  "options": {
    "scheme": "Example-Dev",
    "target": "Example",
    "buildConfiguration": "Debug",
    "method": "development",
    "signingCertificate": "iOS Developer",
    "compileBitcode": "NO",
    "provisioningProfile": "e9890938-67cd-4e01-a197-7a43c2e355a4"
  }
}

options : {

propertyOptionalDescriptionDefaultAvailable Options
scheme(Optional)Scheme<Project Name>
target(Optional)Target<Project Name>
buildConfiguration(Optional)Build ConfigurationDebug
compileBitcode(Optional)Should complie BitCode?NOYES, NO
method(Optional)Distribution Methoddevelopmentapp-store, ad-hoc, development
signingCertificate(Optional)CertificateAuto Selected from Build Setting
provisioningProfile(Optional)Provisioning ProfileAuto Selected from Build SettingsProfile ID, Profile Name

}

Output Params

ParamsDescriptionSample Value
BL_BUILD_ARCHIVE_PATHArchive path/Users/jay.mehta/Example/.betalane/Example.xcarchive
BL_BUILD_IPA_PATHIPA File path/Users/jay.mehta/Example/.betalane/Example-Dev.ipa

doa_s3 - Distribute on the Air using AWS S3

{
  "job": "doa_s3",
  "options": {
    "AccessKeyID": "AKXXXXXXXXXEXAMPLE",
    "SecretAccessKey": "wJXXXXXXXXXX/K7XXXXXX/XXXXXXXEXAMPLEKEY",
    "s3Bucket": "example-beta-builds",
    "region": "us-east-2",
    "prefix": "builds/ios/",
    "buildPath" : "env.BL_BUILD_IPA_PATH"
  }
}

options : {

propertyOptionalDescriptionDefaultAvailable Options
AccessKeyIDRequiredAccessKeyID - Obtain from IAM
SecretAccessKeyRequiredSecretAccessKey - Obtain from IAM
s3BucketRequiredAWS S3 Bucket Name
regionRequiredAWS S3 Bucket Region
prefix(Optional)S3 Key Prefixbetalane/
buildPath(Optional)Build Path to upload on S3env.BL_BUILD_IPA_PATH - Env variable exposed by build job

}

Output Params

ParamsDescriptionSample Value
BL_DOA_S3_BUILD_URLBuild Urlhttps://example-beta-builds.s3.amazonaws.com/doa-beta-20-Aug-2018-14-40-58/package.ipa
BL_DOA_S3_MANIFEST_URLMenifest Urlhttps://example-beta-builds.s3.amazonaws.com/doa-beta-20-Aug-2018-14-40-58/manifest.plist
BL_DOA_S3_INSTALL_URLInstallable Urlhttps://example-beta-builds.s3.amazonaws.com/doa-beta-20-Aug-2018-14-40-58/download.html

IAM Policy Sample

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "StmtBetalaneS3Policy",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::example-beta-builds/*"
    }
  ]
}

Steps to create S3 bucket

  1. Login to AWS Console
  2. Click on S3 service
  3. Create Bucket
  4. Enter "Bucket Name", Click "Next", "Next", "Next", "Cerate Bucket".

Steps to create IAM User

  1. Login to AWS Console
  2. Click on IAM service
  3. Select Policies from left side menu
  4. Select "Create Policy"
  5. Click on "JSON" tab
  6. Replace JSON with above sample and change bucket name in Resource key
  7. Click "Review Policy"
  8. Name your policy, e.g. Example Beta Lane S3 Policy
  9. Click "Create Policy"
  10. Now select "Users" from left side menu
  11. Click "Add User"
  12. Give some "Username", and select "Programmatic access" from Access Type.
  13. Select "Attach Existing Policy"
  14. Look for the policy you just created and select it, Click "Next: Review"
  15. Review and Click "Create"
  16. Download CSV file containing your AccessKeyID and SecretAccessKey

cli - Execute any cli command

{
  "job": "cli",
  "options": {
    "cmd": "cd Example && carthage update --platform iOS"
  }
}

options : {

propertyOptionalDescriptionDefaultAvailable Options
cmdRequiredCommand to be performed

}