跳到主要内容

Build Flutter App

Learn how to add and configure the \"Build Flutter App\" action in your Buddy pipeline

POST参数

名称类型描述
name
必填
String操作名称
type
必填
StringThe type of the action. Should be set to BUILD.
docker_image_name
必填
StringThe name of the Docker image.
docker_image_tag
必填
StringThe tag of the Docker image.
execute_commands
必填
String[]The commands that will be executed.
cached_dirsString[]The dependencies & directories to be cached and available to every execution in this pipeline.
volume_mappingsString[]The path preceding the colon is the filesystem path (the folder from the filesystem to be mounted in the container). The path after the colon is the container path (the path in the container, where this filesystem will be located).
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, CUSTOM.

示例

请求

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

JSON

{
"name": "Execute: flutter build apk",
"type": "BUILD",
"trigger_time": "ON_EVERY_EXECUTION",
"working_directory": "/buddy/my-repo-dir",
"docker_image_name": "library/openjdk",
"docker_image_tag": "8",
"volume_mappings":
"/:/buddy/mount/directory",
"execute_commands": [
"export ANDROID_HOME=\"/opt/android/sdk/\"",
"export BUILD_TOOLS_VER=\"28.0.3\"",
"export FLUTTER_HOME=\"/opt/flutter\"",
"export FLUTTER_ROOT=\"$FLUTTER_HOME\"",
"export FLUTTER_VERSION=\"v1.12.13+hotfix.5\"",
"export PATH=$PATH:/opt/android/sdk/build-tools/$BUILD_TOOLS_VER:${FLUTTER_HOME}/bin:${FLUTTER_HOME}/bin/cache/dart-sdk/bin",
"flutter build apk"
],
"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 > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager platform-tools > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager tools > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager emulator > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;android;m2repository\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;m2repository\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;google_play_services\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"build-tools;28.0.3\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"platforms;android-28\" > /dev/null",
"git clone --branch \"v1.12.13+hotfix.5\" https://github.com/flutter/flutter.git /opt/flutter > /dev/null",
"/opt/flutter/bin/flutter doctor > /dev/null"
],
"cached_dirs": [
"/root/.gradle"
],
"shell": "BASH"
}

示例响应

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": "Execute: flutter build apk",
"type": "BUILD",
"trigger_time": "ON_EVERY_EXECUTION",
"last_execution_status": "INITIAL",
"disabled": false,
"working_directory": "/buddy/my-repo-dir",
"docker_image_name": "library/openjdk",
"docker_image_tag": "8",
"execute_commands": [
"export ANDROID_HOME=\"/opt/android/sdk/\"",
"export BUILD_TOOLS_VER=\"28.0.3\"",
"export FLUTTER_HOME=\"/opt/flutter\"",
"export FLUTTER_ROOT=\"$FLUTTER_HOME\"",
"export FLUTTER_VERSION=\"v1.12.13+hotfix.5\"",
"export PATH=$PATH:/opt/android/sdk/build-tools/$BUILD_TOOLS_VER:${FLUTTER_HOME}/bin:${FLUTTER_HOME}/bin/cache/dart-sdk/bin",
"flutter build apk"
],
"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 > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager platform-tools > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager tools > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager emulator > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;android;m2repository\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;m2repository\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"extras;google;google_play_services\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"build-tools;28.0.3\" > /dev/null",
"/opt/android/sdk/tools/bin/sdkmanager \"platforms;android-28\" > /dev/null",
"git clone --branch \"v1.12.13+hotfix.5\" https://github.com/flutter/flutter.git /opt/flutter > /dev/null",
"/opt/flutter/bin/flutter doctor > /dev/null"
],
"cached_dirs": [
"/root/.gradle"
],
"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",
"on": "CLICK",
"refs": [
"refs/heads/master"
],
"last_execution_status": "INITIAL",
"last_execution_revision": null
},
"shell": "BASH",
"run_next_parallel": false
}