ubuild is our release tool. It allows you to:
Generate a release
Compile programs
Build containers
Push those containers to a remote registry
Everything in one command.
go get github.com/upfluence/ubuild
Before running ubuild you must export a GITHUB_TOKEN and set RELEASE to true into your environment and be logged in into a docker hub account with access to upfluence image registry.
type: <lang> go, rb, py, frontendverbose: <true/false>repository: <github_path># needed only for compiled languagecompiler:
binaries:
- path: <path_to_entrypp>dist:
CGO: args: # map of arguments to pass to the compilerkey: val... docker:
dockerfile: <path_to_dockerfile> # Dockerfile by defaultimage: <image_name>tags: # additional tagskey: val...deployer:
url:
envs:
key: val...bump_strategies:
<branch>: <strategy> # valid strategies are "bump_patch", "bump_rc"For example this configuration will build an image based on a python package, update the release of upfluence/ner_analyser and update to the docker image named "ner-analyser".
type: pyverbose: truerepository: <org>/<repository>docker:
image: "<image_name>"The sensitive environment variable should be fetched from the project secrets.
Example: - run: docker images
build:
name: Buildruns-on: ubuntu-latestneeds: teststeps:
- name: Checkoutuses: actions/checkout@v2
- name: Install ubuildrun: | curl -sSL https://github.com/upfluence/ubuild/releases/download/v0.2.0/ubuild-linux-amd64-0.2.0 > ~/go/bin/ubuild chmod +x ~/go/bin/ubuild - name: Buildrun: | echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin ubuildenv:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}RELEASE: trueGITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}