Knowledge

Build Application

Parameters
Name Description
action Required String The ID of the action.
type Required String The type of the action. Should be set to BUILD.
docker_image_name Required String The name of the Docker image.
docker_image_tag Required String The tag of the Docker image.
execute_commands Required String[] The commands that will be executed.
trigger_time String Specifies when the action should be executed. Can be one of ON_EVERY_EXECUTION, ON_FAILURE or ON_BACK_TO_SUCCESS.
cached_dirs String[] The dependencies & directories to be cached and available to every execution in this pipeline.
working_directory String The directory in which the pipeline filesystem will be mounted.
setup_commands String[] The command that will be executed only on the first run.
shell String The name of the shell that will be used to execute commands. Can be one of SH or BASH (default).
services Service[] The containers with the services that will be attached to this environment. Available types: MYSQL, MONGO_DB, MARIADB, POSTGRE_SQL, REDIS, MEMCACHED, ELASTICSEARCH.
main_service_name String The hostname of the container in which the action is run. The container will be available under this name in the docker network for services defined in the services field.
login String The username required to connect to the Dockerhub, private registry or GCR.
password String The password required to connect to the Dockerhub, private registry or GCR.
registry String The url to the Docker registry or GCR.
integration_id Integration The integration. Required for using the image from the Amazon ECR.
region String The name of the Amazon S3 region. Required for using the image from the Amazon ECR. The full list of regions is available here.
use_image_from_action Boolean If set to true the Docker image will be taken from action defined by docker_build_action_id or docker_build_action_name.
docker_build_action_id Integer The ID of the action which built the desired Docker image. If set to 0, the image will be taken from previous pipeline action. Can be used instead of docker_build_action_name.
docker_build_action_name String The name of the action which built the desired Docker image. Can be used instead of docker_build_action_id.
trigger_condition String Defines when the build action should be run. Can be one of ALWAYS, ON_CHANGE, ON_CHANGE_AT_PATH, VAR_IS, VAR_IS_NOT or VAR_CONTAINS.
trigger_condition_paths String[] Required when trigger_condition is set to ON_CHANGE_AT_PATH.
trigger_variable_key String Required when trigger_condition is set to VAR_IS, VAR_IS_NOT or VAR_CONTAINS. Defines the name of the desired variable.
trigger_variable_value String Required when trigger_condition is set to VAR_IS, VAR_IS_NOT or VAR_CONTAINS. Defines the value of the desired variable which will be compared with it’s current value.
Example
actions:
  - action: "Build application"
    type: "BUILD"
    docker_image_name: "library/ubuntu"
    docker_image_tag: "latest"
    execute_commands:
    - "ls -al > ls.log"
    setup_commands:
    - "apt-get update -y"
    - "apt-get install -y wget"
    main_service_name: "my-app.svc"
    services:
    - type: "MYSQL"
      version: "5.7"
    - type: "MONGO_DB"
      version: "3.2.4"
    cached_dirs:
    - "/build/test"
    - "/bin/Debug"
    trigger_condition: "ON_CHANGE_AT_PATH"
    trigger_condition_paths: 
    - "/src"
    - "/tests"
    working_directory: "/buddy/my-repo-dir"
    shell: "SH"
Example
Using private image from Dockerhub
actions:
  - action: "Build application"
    type: "BUILD"
    docker_image_name: "buddyworks/private_image"
    docker_image_tag: "latest"
    execute_commands:
    - "ls -al > ls.log"
    login: "buddyworks"
    password: "${top_secret_password}"
Example
Using image from private registry
actions:
  - action: "Build application"
    type: "BUILD"
    docker_image_name: "buddyworks/private_image"
    docker_image_tag: "latest"
    execute_commands:
    - "ls -al > ls.log"
    login: "buddyworks"
    password: "${top_secret_password}"
    registry: "my.registry.com"
Example
Using image from Google Container Registry
actions:
  - action: "Build application"
    type: "BUILD"
    docker_image_name: "tokyo-house-147623/private_image"
    docker_image_tag: "latest"
    execute_commands:
    - "ls -al > ls.log"
    login: "_json_key"
    password: "${google_json_key}"
    registry: "my.gcr.com"
Example
Using image from Amazon ECR
actions:
  - action: "Build application"
    type: "BUILD"
    docker_image_name: "private_image"
    docker_image_tag: "latest"
    execute_commands:
    - "ls -al > ls.log"
    region: "us-east-1"
    integration_id: 1
Example
Using image built in previous action
actions:
  - action: "Build application"
    type: "BUILD"
    use_image_from_action: true
    docker_build_action_id: 0
    execute_commands:
    - "ls -al > ls.log"
Using the build action services
Parameters of the service
Name Description
type Required String The type of the attached service. Can be one of MYSQL, MARIADB, REDIS, MONGO_DB, POSTGRE_SQL, CASSANDRA, MEMCACHED, ELASTICSEARCH, SELENIUM_CHROME, SELENIUM_FIREFOX, GANACHE, NODEOS, RABBITMQ, CUSTOM.
connection Required Connection The service’s connection details.
persistent Boolean If set to true, the database content will be cached between executions. Available when type is set to MYSQL, MARIADB, REDIS, MONGO_DB, POSTGRE_SQL, CASSANDRA, GANACHE or NODEOS.
version String The version of the predefined service’s base image. Required for every type except for CUSTOM.
dump_path String The path to the SQL dump file that will be used to populate service’s database. Available when type is set to MARIADB, POSTGRE_SQL or MYSQL.
docker_image_name String The name of the Docker image. Available when type is set to CUSTOM.
docker_image_tagString The tag of the Docker image. Available when type is set to CUSTOM.
registry String The url to the Docker registry or GCR. Available when type is set to CUSTOM.
login String When type is set to custom, this is the username required to connect to the Dockerhub, private registry or GCR.
password String When type is set to custom, this is the password required to connect to the Dockerhub, private registry or GCR.
working_directory String The directory in which the commands are executed. Available when type is set to CUSTOM.
inline_commands String The command that will be executed upon running the container with the service. Available when type is set to CUSTOM.
mount_filesystem_path String The directory in which the pipeline filesystem will be mounted. Available when type is set to CUSTOM.
cached_dirs String[] The additional container’s directories that will be cached between executions. Available when type is set to CUSTOM.
use_image_from_action Boolean If set to true the Docker image will be taken from action defined by docker_build_action_id or docker_build_action_name. Available when type is set to CUSTOM.
docker_build_action_id Integer The ID of the action which built the desired Docker image. If set to 0, the image will be taken from previous pipeline action. Can be used instead of docker_build_action_name.
docker_build_action_name String The name of the action which built the desired Docker image. Can be used instead of docker_build_action_id.
integration_id Integration The integration. Required for using the image from the Amazon ECR. Available when type is set to CUSTOM.
region String The name of the Amazon S3 region. Available when type is set to CUSTOM. Required for using the image from the Amazon ECR. The full list of regions is available here.
Parameters of the connection item
Name Description
host Required String The hostname that will be available within the docker network upon the execution.
db String The initial database name. Available when type is set to MARIADB, POSTGRE_SQL or MYSQL.
port Integer The service’s connection port.
user String Defines the username used in the desired service. Available and required when type is set to MYSQL, MARIADB, POSTGRE_SQL or RABBITMQ.
password String Defines the password used in the desired service. Available and required when type is set to MYSQL, MARIADB, POSTGRE_SQL or RABBITMQ.
Example
actions:
- action: "Build application"
    type: "BUILD"
    docker_image_name: "library/ubuntu"
    docker_image_tag: "latest"
    execute_commands:
    - "ls"
    services:
    - type: "CUSTOM"
      connection:
        host: "custom.service"
      use_image_from_action: true
      docker_build_action_id: 0
      working_directory: "/buddy/git-repo"
      mount_filesystem_path: "/buddy/git-repo"
      cached_dirs:
      - "/var/data/"
    - type: "MYSQL"
      version: "5.7"
      persistent: true
      connection:
        host: "mysql"
        port: 3306
        user: "root"
        password: "root"
    - type: "MARIADB"
      version: "10.1.16"
      persistent: true
      connection:
        host: "mariadb"
        port: 3306
        user: "root"
        password: "root"
    - type: "REDIS"
      version: "3.2.1"
      persistent: true
      connection:
        host: "redis"
        port: 6379
    - type: "MONGO_DB"
      version: "3.2.4"
      persistent: true
      connection:
        host: "mongo"
        port: 27017
    - type: "POSTGRE_SQL"
      version: "9.5.3"
      persistent: true
      connection:
        host: "postgres"
        port: 5432
        user: "root"
        password: "root"
    - type: "CASSANDRA"
      version: "3.11"
      persistent: true
      connection:
        host: "cassandra"
        port: 9042
    - type: "MEMCACHED"
      version: "1.4.29"
      persistent: false
      connection:
        host: "memcached"
        port: 11211
    - type: "ELASTICSEARCH"
      version: "2.3.4"
      persistent: false
      connection:
        host: "elasticsearch"
        port: 9200
    - type: "SELENIUM_FIREFOX"
      version: "3.0.1"
      persistent: false
      connection:
        host: "selenium-ff"
        port: 4444
    - type: "SELENIUM_CHROME"
      version: "3.0.1"
      persistent: false
      connection:
        host: "selenium-ch"
        port: 4444
    - type: "NODEOS"
      version: "latest"
      persistent: true
      connection:
        host: "nodeos"
        port: 8888
      plugins:
      - "eosio::history_api_plugin"
      - "eosio::history_plugin"
      - "eosio::chain_api_plugin"
      - "eosio::chain_plugin"
      - "eosio::faucet_testnet_plugin"
      - "eosio::http_plugin"
      - "eosio::net_api_plugin"
      - "eosio::producer_plugin"
      - "eosio::txn_test_gen_plugin"
      - "eosio::wallet_plugin"
      - "eosio::wallet_api_plugin"
    - type: "GANACHE"
      version: "latest"
      persistent: true
      connection:
        host: "ganache"
        port: 8545
      gas_price: 20000000000
      gas_limit: 90000
      accounts:
      - "0xfd7ac8b32e8a2391cad323efd7b162d77dd9ca67806d09877552c38b618713a5:1000000000000000000"
    - type: "RABBIT_MQ"
      version: "3.7.8"
      persistent: true
      connection:
        host: "rabbitmq"
        port: 5672
        user: "guest"
        password: "guest"

Get started now

14 days of unlimited trial. No credit card required.