Skip to content
This repository has been archived by the owner on Nov 7, 2023. It is now read-only.

Latest commit

 

History

History
269 lines (228 loc) · 9.23 KB

CONFIGURATION.md

File metadata and controls

269 lines (228 loc) · 9.23 KB

Build System

Global Configuration Parameters:

  1. platform [choice (ios, osx, android)] - project platform

  2. using_pods [bool] - whether project uses CocoaPods [ios, osx]

  3. project_dir [string] - path to project's dir [default: .]

  4. profile.file [string] - path to profile file [iOS only]

  5. profile.identity [string] - profile's identity string [iOS only]
    Example:

     profile:
     	file:       profiles/adhoc.mobileprovision
     	identity:   "iPhone Developer: Trololo, LLC"
    
  6. project_name [string] - project name for naming APK file before uploading to hockeyapp

###Modules

  1. Branch Module
    Checkout Git Repo to specified branch
    Name: branch
    Config Parameters:

     branch:  
     	name:       master  
     	submodules: true
    

    branch.name [string] - the name of branch git repo will be switched to
    branch.submodules [bool] - init submodules or not

  2. Clean Module
    Name: clean
    Config Parameters: nothing

  3. Bump Version Module
    Increase project version number
    Name: bump_version
    Config Parameters:

     bump_version:
     	enabled:    false
     	up_mver:	false
     	simple:		false
    

    bump_version.enabled [bool] - enable or disable module for configuration
    bump_version.up_mver [bool] - update marketing version field or not (semantic version format major.minor.build)
    bump_version.simple [bool] - update marketing version to build number

  4. Build Module
    Main build module for iOS Projects
    Name: build
    Config Parameters:

     build:
     	configuration:  Release
     	sdk:            iphoneos
     	doclean:        true
     	ver_on_icon     false
     	workspace:
     		name:       TestProject
     		scheme:     TestProject
     	project:
     		name:       TestProject
     		target:     TestProject
    

    build.configuration [string] - project's configuration name
    build.sdk [string] - SDK version
    build.doclean [bool] - enable or disable cleaning project before building
    build.ver_on_icon [bool] - to print version number on icon or not
    build.workspace.name [string] - workspace name if using pods
    build.workspace.scheme [string] - scheme name if using pods
    build.project.name [string] - project name if not using pods
    build.project.target [string] - target name if not using pods

  5. Tests Module
    Module for running tests from iOS Project
    Name: tests
    Config Parameters:

     tests:
     	enabled:    false
     	target:     TestProjectTest
    

    tests.enabled [bool] - run tests or not
    tests.target [string] - tests target name

  6. Pack IPA Module
    Packing build into IPA file and sign with specified profile if needed
    Name: pack_ipa
    Config Parameters:

     pack_ipa:
     	enabled:	false
     	naming:
     		prefix:         TestProject
     		append_version: false
    

    pack_ipa.enabled [bool] - enable or disable module for configuration
    pack_ipa.naming.prefix [string] - prefix for output IPA filename [default: <empty string>]
    pack_ipa.naming.append_version [bool] - enable or disable appending version number to output IPA filename

  7. Pack dSYM Module
    Pack dSYM data of build
    Name: pack_dsym
    Config Parameters:

     pack_dsym:
     	enabled:    false
     	output_dir: ~/Desktop/
    

    pack_dsym.enabled [bool] - enable or disable module for configuration
    pack_dsym.output_dir [string] - path to output directory

  8. Upload DOA Module [Abandoned]
    Upload IPA to DOA service
    Name: upload_doa
    Config Parameters:

     doa:
     	host:       http://doa.domain/
     	guid:       app_guid
    

    doa.host [string] - host address of DOA server
    doa.guid [string] - application's id on DOA server

  9. Copy IPA Module
    Copy IPA file to specified directory
    Name: copy_ipa
    Config Parameters:

     copy_ipa:
     	enabled:    true
     	output_dir: ~/Desktop/
     	clear_old:  false
    

    copy_ipa.enabled [bool] - enable or disable module for configuration
    copy_ipa.output_dir [string] - path to output directory
    copy_ipa.clear_old [bool] - clear or not old builds

  10. IPA Publisher [Deprecated]
    Old style publisher for IPAs to distribute them over air
    Name: ipa_publisher
    Config Parameters:

    ipa_publisher:
    	enabled:    false
    	fs_path:    /var/www/app/
    	web_path:   http://server.com/app/
    	template:   builder/publisher_template.html
    

    ipa_publisher.enabled [bool] - enable or disable module for configuration
    ipa_publisher.fs_path [string] - path to www accessible dir on server
    ipa_publisher.web_path [string] - http address of page
    ipa_publisher.template [string] - html template for page

  11. Resign IPA Module [Abandoned]
    Resign IPA file
    Name: ipa_resign
    Config Parameters:

    ...
    
  12. HockeyApp Module
    Upload build to HockeyApp Service
    Name: hockeyapp
    Config Parameters:

    hockeyapp:
    	enabled:    false
    	token:      token
    	app_id:     app_id
        notify:     false
        download:   false
    

    hockeyapp.enabled [bool] - enabled or disabled module for configuration
    hockeyapp.token [string] - HockeyApp API Token
    hockeyapp.app_id [string] - HockeyApp App ID
    hockeyapp.notify [bool] - send notifications to project related people
    hockeyapp.download [bool] - set ability to download build
    Accepts parameter BUILD_NOTES as release note for upload. You can add it in Jenkins build job as "Text Field" parameter. Or just pass as ENV parameter.

    NOTE: For Android projects you can define project_name property in config and it will be used for naming APK file before uploading to HockeyAPP. Thus it will add mo clarity to downloadable file insted of some plain name like MainActivity-release.apk

  13. Update Config [Android] Module
    Update configurations for android project & dependencies, generate build.xml files for ant.
    Name: update_configs_android
    Config Parameters:

    update_configs_android:
        enabled:    true
    

    update_configs_android.enabled [bool] - whether is module enabled for configuration

  14. Clean [Android] Module
    Clean project & dependencies before build
    Name: clean_android
    Config Parameters: nothing

  15. Bump Version [Android] Module
    Bump version in android project
    Name: bump_version_android
    Config Parameters:

    bump_version_android:
        enabled:    false
        push:       false
    

    bump_version_android.enabled [bool] - whether is module enabled for configuration. bump_version_android.push [bool] - push changes to git repo or not

  16. Build [Android] Module
    Build android project
    Name: build_android
    Config Parameters:

    build_android:
        configuration:  release
        android_target: "Google Inc.:Google APIs:17"
        properties_key: project_key
        dependencies:
            - dep1
            - dep2
    

    build_android.configuration [string] - configuration to build
    build_android.android_target [string] - android SDK version
    build_android.properties_key [string] - key for retrieving data for updating ant.properties file
    build_android.dependencies [list] - project's dependencies

  17. Copy APK Module
    Copy APK file to specified directory
    Name: copy_apk
    Config Parameters:

    copy_apk:
        enabled:    false
        output_dir: "~/Dropbox/<your_project_dir>"
        naming:
            prefix: Prefix
    

    copy_apk.enabled [bool] - whether is module enabled for configuration
    copy_apk.output_dir [string] - path to output directory
    copy_apk.naming.prefix [string] - apk filename prefix

  18. Template File Module
    Copy template files with replacing placeholders with vars specified in config file
    Name: template_file
    Config Parameters:

    template_file:
        enabled: true
        files:
            - {from: 'tpl.txt', to: 'work.txt', vars: {name: 'World', action: 'destroy'}}
    

    Template file example:

    Hello {name},
    Trololo on you!
    piu piu {action}!
    

    template_file.enabled [bool] - whether is module enabled for configuration
    template_file.files [array] - array of hashes with required params: from - path to template file, to - path for output file, vars - hash with var names and its values

  19. TestFlight Module Upload build to TestFlight Service Name: testflight Config Parameters:

    testflight:
        enabled:    false
        api_token:  token
        team_token: team
        notify:     false
    

    testflight.enabled [bool] - whether is module enabled for configuration
    testflight.api_token [string] - testflight api token
    testflight.team_token [string] - testflight your team token
    testflight.notify [bool] - send notifications to teammates
    Accepts parameter BUILD_NOTES as release note for upload. You can add it in Jenkins build job as "Text Field" parameter. Or just pass as ENV parameter.

  20. Xcode Module
    Switch between Xcode versions
    name: xcode
    Config Parameters:

    xcode:
    	enabled: false
    	version: v4
    

    xcode.enabled [bool] - whether is module enabled for configuration
    xcode.version [string] - Xcode version defined in global config (by default in ~/.bs_modulo.yml)