Giter Club home page Giter Club logo

extension-builder's Introduction

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

extension-builder's People

Contributors

xnbx2012 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.