Build Flutter App

  • POST
  • /workspaces
  • /:domain
  • /projects
  • /:project_name
  • /pipelines
  • /:pipeline_id
  • /actions

Request

URL PARAMETERS
domainrequired string
The workspace domain.
pipeline_idrequired integer
The numerical ID of the desired pipeline.
project_namerequired string
The name ID of the project.
POST PARAMETERS
namerequired string
The name of the action.
typerequired string
The type of the action. Should be set to BUILD.
docker_image_namerequired string
The name of the Docker image.
docker_image_tagrequired string
The tag of the Docker image.
execute_commandsrequired string[]
The commands that will be executed.
cached_dirsoptional string[]
The dependencies & directories to be cached and available to every execution in this pipeline.
volume_mappingsoptional string[]
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_directoryoptional string
The directory in which the pipeline filesystem will be mounted.
setup_commandsoptional string[]
The command that will be executed only on the first run.
servicesoptional Service[]
The containers with the services that will be attached to this environment. Available types: MYSQL, MONGO_DB, MARIADB, POSTGRE_SQL, REDIS, MEMCACHED, ELASTICSEARCH, CUSTOM.

Last modified on Sep 27, 2024

Example:

curl -X POST "https://api.buddy.works/workspaces/:domain/projects/:project_name/pipelines/:pipeline_id/actions" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
  "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"
}'
EXAMPLE RESPONSE
{ "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 }
STATUS
201 Created
LIMITS
X-Rate-Limit-Limit: 1 X-Rate-Limit-Remaining: 999