Build Android App

POST Parameters

NameTypeDescription
docker_image_name
Required
StringThe name of the Docker image.
docker_image_tag
Required
StringThe tag of the Docker image.
execute_commands
Required
String[]The commands that will be executed.
name
Required
StringThe name of the action.
trigger_time
Required
StringSpecifies when the action should be executed. Can be one of ON_EVERY_EXECUTION, ON_FAILURE or ON_BACK_TO_SUCCESS.
type
Required
StringThe type of the action. Should be set to BUILD.
cached_dirsString[]The dependencies & directories to be cached and available to every execution in this pipeline.
mount_filesystem_pathStringThe directory in which the pipeline filesystem will be mounted. Available when type is set to CUSTOM.
working_directoryStringThe directory in which the pipeline filesystem will be mounted.
setup_commandsString[]The command that will be executed only on the first run.
servicesService[]The containers with the services that will be attached to this environment. Available types: MYSQL, MONGO_DB, MARIADB, POSTGRE_SQL, REDIS, MEMCACHED, ELASTICSEARCH.
after_action_idIntegerThe numerical ID of the action, after which this action should be added.
trigger_conditionStringDefines when the build action should be run. Can be one of ALWAYS, ON_CHANGE or ON_CHANGE_AT_PATH.
trigger_condition_pathsString[]Required when trigger_condition is set to ON_CHANGE_AT_PATH.
variablesVariable []The list of variables defined for this action.

Example

Request

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
"name": "Build Android app",
"type": "BUILD",
"trigger_time": "ON_EVERY_EXECUTION",
"trigger_condition": "ALWAYS",
"docker_image_name": "library/openjdk",
"docker_image_tag": "8",
"execute_commands": [
"export ANDROID_HOME=\"/opt/android/sdk/\"",
"export BUILD_TOOLS_VER=\"27.0.3\"",
"export PATH=$PATH:/opt/android/sdk/build-tools/$BUILD_TOOLS_VER",
"#build",
"chmod +x gradlew",
"#./gradlew assembleDebug",
"./gradlew assembleRelease"
],
"setup_commands": [
"mkdir -p /opt/android/sdk && mkdir .android",
"cd /opt/android/sdk && curl -o sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip && unzip sdk.zip && rm sdk.zip",
"yes | /opt/android/sdk/tools/bin/sdkmanager --licenses",
"/opt/android/sdk/tools/bin/sdkmanager --update",
"/opt/android/sdk/tools/bin/sdkmanager platform-tools",
"/opt/android/sdk/tools/bin/sdkmanager tools",
"/opt/android/sdk/tools/bin/sdkmanager emulator",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;android;m2repository\"",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;m2repository\"",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;google_play_services\"",
"/opt/android/sdk/tools/bin/sdkmanager \"build-tools;27.0.3\"",
"/opt/android/sdk/tools/bin/sdkmanager \"platforms;android-27\""
],
"variables": [
{
"key": "ftp_login",
"value": "userLogin123",
"description": "The name of user to FTP.",
"encrypted": false,
"settable": false
},
{
"key": "ftp_password",
"value": "secure!14ivLMxPgv7TX6c9+ITX/g==",
"description": "The password for ftp.",
"encrypted": true
}
]
"working_directory": "/buddy/my-repo-dir"
}

Sample Response

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/2/edit",
"id": 2,
"name": "Build Android app",
"type": "BUILD",
"trigger_time": "ON_EVERY_EXECUTION",
"trigger_condition": "ALWAYS",
"last_execution_status": "INITIAL",
"run_only_on_first_failure": false,
"docker_image_name": "library/openjdk",
"docker_image_tag": "8",
"execute_commands": [
"export ANDROID_HOME=\"/opt/android/sdk/\"",
"export BUILD_TOOLS_VER=\"27.0.3\"",
"export PATH=$PATH:/opt/android/sdk/build-tools/$BUILD_TOOLS_VER",
"#build",
"chmod +x gradlew",
"#./gradlew assembleDebug",
"./gradlew assembleRelease"
],
"setup_commands": [
"mkdir -p /opt/android/sdk && mkdir .android",
"cd /opt/android/sdk && curl -o sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip && unzip sdk.zip && rm sdk.zip",
"yes | /opt/android/sdk/tools/bin/sdkmanager --licenses",
"/opt/android/sdk/tools/bin/sdkmanager --update",
"/opt/android/sdk/tools/bin/sdkmanager platform-tools",
"/opt/android/sdk/tools/bin/sdkmanager tools",
"/opt/android/sdk/tools/bin/sdkmanager emulator",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;android;m2repository\"",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;m2repository\"",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;google_play_services\"",
"/opt/android/sdk/tools/bin/sdkmanager \"build-tools;27.0.3\"",
"/opt/android/sdk/tools/bin/sdkmanager \"platforms;android-27\""
],
"variables": [
{
"key": "ftp_login",
"value": "userLogin123",
"description": "The name of user to FTP.",
"encrypted": false,
"settable": false
},
{
"key": "ftp_password",
"value": "secure!14ivLMxPgv7TX6c9+ITX/g==",
"description": "The password for ftp.",
"encrypted": true
}
]
"working_directory": "/buddy/my-repo-dir",
"pipeline": {
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
"id": 2,
"name": "Live mirror",
"trigger_mode": "MANUAL",
"ref_name": "master",
"last_execution_status": "SUCCESSFUL",
"last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
}
}