Giter Site home page Giter Site logo

builder's Introduction

Drycc Builder v2

Build Status codecov Go Report Card codebeat badge FOSSA Status

Drycc - A Fork of Drycc Workflow

Drycc (pronounced DAY-iss) Workflow is an open source Platform as a Service (PaaS) that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications on your own servers.

For more information about Drycc Workflow, please visit the main project page at https://github.com/drycc/workflow.

We welcome your input! If you have feedback, please submit an issue. If you'd like to participate in development, please read the "Development" section below and submit a pull request.

About

The builder is primarily a git server that responds to git pushes by executing either the git-receive-pack or git-upload-pack hook. After it executes one of those hooks, it takes the following high level steps in order:

  1. Calls git archive to produce a tarball (i.e. a .tar.gz file) on the local file system
  2. Starts a new Kubernetes Pod to build the code, according to the following rules:
  • If there is a Dockerfile, build the container with imagebuilder
  • Otherwise, use imagebuilder to build CNCF native buildpack
  • You can use DRYCC_STACK specifies the build type. Currently, it supports two types: buildpack and container

Supported Off-Cluster Storage Backends

Builder currently supports the following off-cluster storage backends:

  • GCS
  • AWS/S3
  • Azure
  • Swift
  • Alibaba OSS

Development

The Drycc project welcomes contributions from all developers. The high level process for development matches many other open source projects. See below for an outline.

  • Fork this repository
  • Make your changes
  • Submit a pull request (PR) to this repository with your changes, and unit tests whenever possible
    • If your PR fixes any issues, make sure you write Fixes #1234 in your PR description (where #1234 is the number of the issue you're closing)
  • The Drycc core contributors will review your code. After each of them sign off on your code, they'll label your PR with LGTM1 and LGTM2 (respectively). Once that happens, a contributor will merge it

Container Based Development Environment

The preferred environment for development uses the go-dev Container image. The tools described in this section are used to build, test, package and release each version of Drycc.

To use it yourself, you must have make installed and Container installed and running on your local development machine.

If you don't have Podman installed, please go to https://podman.io/ to install it.

After you have those dependencies, grab Go dependencies with make bootstrap, build your code with make build and execute unit tests with make test.

Testing

The Drycc project requires that as much code as possible is unit tested, but the core contributors also recognize that some code must be tested at a higher level (functional or integration tests, for example).

The end-to-end tests repository has our integration tests. Additionally, the core contributors and members of the community also regularly dogfood the platform. Since this particular component is at the center of much of the Drycc Workflow platform, we find it especially important to dogfood it.

Running End-to-End Tests

Please see README.md on the end-to-end tests repository for instructions on how to set up your testing environment and run the tests.

Dogfooding

Please follow the instructions on the official Drycc docs to install and configure your Drycc Workflow cluster and all related tools, and deploy and configure an app on Drycc Workflow.

License

FOSSA Status

builder's People

Contributors

aboyett avatar aledbf avatar apsops avatar arschles avatar bregor avatar cryptophobia avatar dependabot[bot] avatar duanhongyi avatar felixbuenemann avatar fossabot avatar helgi avatar jeroenvisser101 avatar jgmize avatar jianxiaoguo avatar joshua-anderson avatar kmala avatar krancour avatar krisnova avatar lshemesh avatar mattk42 avatar mboersma avatar monaka avatar n0n0x avatar slack avatar technosophos avatar vdice avatar zinuzoid avatar

Stargazers

 avatar  avatar

Watchers

 avatar  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.