Skip to content

ColinTree/extension-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

extension-builder

GitHub package.json version GitHub release (latest by date)

This is a cloud build system of app inventor extensions

Github source

Table of Content

Upgrade from 1.x

The major different between 1.x and 2.2+ is the location & name of config files. So the most important upgrade is move your eb-config.json from the project root dir to config/, and rename it with local.json

How to deploy

In your server, run:

cd /path/to/extension-builder/
git pull

docker stop extension-builder || true
docker rm extension-builder || true
docker build . -t extension-builder
docker run -d -p 8048:8048 --restart unless-stopped --name="extension-builder" extension-builder

Additional Config before build & deploy

for local.json, we accept the following configs:

  • port

    • number
    • default to 8048
    • The port number of the service.
    • Note: this is not necessary to change for a docker deploy, you can do that by changing docker port expose (using -p xxxx:8048)
  • builder-config-name

    • string
    • default to "builder-config.json"
    • The config file name to read from build jobs
  • check-jobpool-results-only

    • boolean
    • default to false
    • To control whether job result would be return when result achieve is found but the job is not in the job pool
  • keep-legacy-results

    • boolean
    • default to true
    • To control whether temp dir will be cleaned every time server started
  • output-dir

    • string
    • default to "/usr/build-result/"
  • temp-dir

    • string
    • default to "%SYSTEM_TEMP%/extension-builder/"
    • Note: "%SYSTEM_TEMP%" can be used to denote system temp dir
  • workspace

    • string
    • default to "/usr/workspace/"
    • The workspace to build extension
  • server-status-page-enabled

    • boolean
    • default to true
    • define whether server-status.html will be accessible
  • server-status-api-enabled

    • boolean
    • default to true
    • define whether api check-server-status will be accessible
    • Note: Disabling server-status api will disable server-status page automatically
  • build-with-github-repo-enabled

    • boolean
    • default to true
  • build-with-zip-enabled

    • boolean
    • default to true
  • build-with-plain-source-enabled

    • boolean
    • default to false
  • whitelist-enabled

    • boolean
    • default to false
    • Note: Enabling whitelist will disable build-with-zip and build-with-plain-source automatically
  • whitelist

    • array of { "owner": "...", "repo": "...", "refs": "..." }
    • default to master branch of OpenSourceAIX/ColinTreeListView
    • For refs, * can be used to denote any branch/tag/commit
  • github-auth-type

  • github-auth-username

    • string
    • no default value
    • Used when github-auth-type is basic
  • github-auth-password

    • string
    • no default value
    • Used when github-auth-type is basic
  • github-auth-token

    • string
    • no default value
    • Used when github-auth-type is token

View server status

Goto http://<YOUR_SERVER_HOST_AND_PORT>/server-status.html

View server log

docker exec -it extension-builder pm2 logs

sometimes you would need to exec:

docker exec -it extension-builder /bin/sh
pm2 logs

How to use [optional builder config in extension source]

Extension-builder accepts zero-configured extension sources, while builder-config.json can also be put in the same directory of your extension java file when it's necessary.

builder-config.json Accepts:

{
  // [Optional] Same package name with your extension(s)
  //            If this is left blank, builder will try to detect from your java files
  "package": @string,
  // [Optional] This will be affective only if the build is called by webhook
  "pushToRelease": @boolean
}

Sample config: https://github.com/OpenSourceAIX/ColinTreeListView/blob/master/builder-config.json