Provides build isolation through Docker with automatic detection for common build tools (e.g. Maven, Gradle, NPM, Go).
<>
Finally, any combination of these four forms of configuration is permissible. The order of precedence for configuration from highest to lowest is:
- Command Line
- .build (working directory)
- ~/.build (home directory)
- Environment
- BUILD_DOCKER_IMAGE :
- BUILD_DOCKER_REGISTRY :
- BUILD_ADDITIONAL_ARGUMENTS :
- BUILD_ADDITIONAL_ENVIRONMENT
- BUILD_TOOL :
- BUILD_ARGUMENTS :
- BUILD_ENVIRONMENT :
- BUILD_EXPOSED_PORTS :
- BUILD_DOCKER_ARGS :
- BUILD_RELEASE : Version of Build (e.g. 0.1.0 or latest). Optional.
- BUILD_TARGET : Directory to store build scripts (e.g. '/var/tmp'). Optional.
- BUILD_FORCE_NATIVE : Force the build to run in the current environment. Optional.
- BUILD_CONTAINER_NAME : Name given to the docker container. Optional.
- BUILD_LOCAL_HOST_IP :
- BUILD_LOCAL_DIRECTORY :
- BUILD_CACHE_ROOT :
- BUILD_SOURCE_CACHE_ROOT :
- BUILD_CACHE_PROJECT :
- BUILD_CACHE_MAVEN :
- BUILD_CACHE_IVY :
- BUILD_CACHE_SBT :
- BUILD_CACHE_GRADLE :
- BUILD_DISABLE_GO :
- BUILD_DISABLE_JDK_WRAPPER :
- BUILDER_VERBOSE : Log build actions to standard out. Optional.
By default the release is latest
.
By default target directory is ~/.builder
.
By default builds are executed in docker.
By default docker container is named is a sanitized version of the working path.
By default the build script does not log.
The builder script may work with other versions or with suitable replacements but has been tested with these:
- docker (17.12.0-ce-mac55)
- posix shell: bash (4.4.12), BusyBox (1.25.1)
- awk (4.1.4)
- curl (7.51.0)
- grep (3.0)
- sed (4.4)
- sha1sum (8.27) or shasum (5.84) or md5
- ip -- preferred
- ifconfig -- fallback
- Determine the next release version
X.Y.Z
using semantic versioning based on changes since the last release. - Create a tag to mark the release:
$ git tag -a "X.Y.Z" -m "X.Y.Z"
- Push the tag to the origin to trigger the release:
$ git push origin --tags
- Verify the release was created in Github
Published under Apache Software License 2.0, see LICENSE
© Ville Koskela, 2018