dibs

System for distributed polyglot, multi-module, multi-architecture development and CI/CD.

pipeline status

introduction video

Overview

dibs, short for distributed build system, enables polyglot, multi-module, multi-architecture development and CI/CD without the configuration overhead one would normally need. During development, it can be called from either Skaffold for cloud-native development or be used natively with dibs -dev.

Installation

Prebuilt Binaries

Prebuilt binaries are available on the releases page.

Go Package

A Go package is available.

Usage

dibs is configured by using a config file.

To use dibs with GitLab CI/CD, see the example GitLab CI/CD configuration file.

% dibs -help
Usage of dibs:
  -build
    	Build the project
  -buildChart
    	Build the Helm chart of the project
  -buildImage
    	Build the Docker image of the project
  -buildManifest
    	Build a Docker manifest.
    	It will add all images of the specified platforms; to add all, set -platform to "*".
  -chartTests
    	Run the chart tests of the project
  -configFile string
    	The config file to use (default "dibs.yaml")
  -context string
    	The config file to use
  -dev
    	Start the development flow for the project
  -docker
    	Run in Docker
  -generateSources
    	Generate the sources for the project
  -imageTests
    	Run the image tests of the project
  -integrationTests
    	Run the integration tests of the project
  -platform string
    	The identifier of the platform to use.
    	This may also be set with the TARGETPLATFORM env variable; a value of "*" runs for all platforms. (default "linux/amd64")
  -publish
    	Publish the project
  -pushBinary
    	Push the binary of the project.
    	This command requires the following env variables to be set:
    	- DIBS_GITHUB_USER_NAME
    	- DIBS_GITHUB_TOKEN
    	- DIBS_GITHUB_REPOSITORY
  -pushChart
    	Push the Helm chart of the project.
    	This command requires the following env variables to be set:
    	- DIBS_GIT_USER_NAME
    	- DIBS_GIT_USER_EMAIL
    	- DIBS_GIT_COMMIT_MESSAGE
    	- DIBS_GITHUB_USER_NAME
    	- DIBS_GITHUB_TOKEN
    	- DIBS_GITHUB_REPOSITORY_NAME
    	- DIBS_GITHUB_REPOSITORY_URL
    	- DIBS_GITHUB_PAGES_URL
  -pushImage
    	Push the Docker image of the project
  -pushManifest
    	Push the Docker manifest of the project
  -skipTests
    	Skip the tests for the project
  -target string
    	The name of the target to use.
    	This may also be set with the DIBS_TARGET env variable; a value of "*" runs all targets. (default "linux")
  -unitTests
    	Run the unit tests of the project

License

dibs (c) 2020 Felix Pojtinger

SPDX-License-Identifier: AGPL-3.0