GithubHelp home page GithubHelp logo

global19 / che-plugin-broker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eclipse-che/che-plugin-broker

0.0 2.0 0.0 4 MB

License: Eclipse Public License 2.0

Go 90.49% Dockerfile 2.98% Makefile 0.81% Shell 5.72%

che-plugin-broker's Introduction

CircleCI codecov

Master Build Status Nightly Build Status Release Build Status

This repo contains implementations of several Che plugin brokers

artifacts-plugin-broker

This broker runs as an init container on the workspace pod. Its job is to take in a list of plugin identifiers (either references to a plugin in the registry or a link to a plugin meta.yaml) and ensure that the correct .vsix and .theia extenions are downloaded into the /plugins directory, for each plugin requested for the workspace.

metadata-plugin-broker

This broker must be run prior to starting the workspace's pod, as its job is to provision required containers, volumes, and environment variables for the workspace to be able to start with the installed plugins enabled.

Development

Mocks are generated from interfaces using library mockery To add new mock implementation for an interface or regenerate to an existing one use following command when current dir is location of the folder containing the interface:

mockery -name=NameOfAnInterfaceToMock

Build

There is a Makefile included in the repo to make building and testing the code easier:

make target function
make ci Run CI tests in docker
make build Build all code
make build-artifacts Build only the artifacts broker, as binary plugin-artifacts-broker in the root of this repo
make build-metadata Build only the metadata broker, as binary plugin-metadata-broekr in the root of this repo
make test Run all tests in repo
make lint Run golangci-lint on repo
make fmt Run go fmt on all .go files
make build-docker-artifacts Build eclipse/che-plugin-artifacts-broker image
make build-docker-metadata Build eclipse/che-plugin-metadata-broker image
test-metadata Build and run metadata broker locally, using plugin ids from brokers/testdata/config-plugin-ids.json; prints output to stdout
test-artifacts Build and run artifacts broker locally, using plugin ids from brokers/testdata/config-plugin-ids.json; downloads all extensions to /plugins locally (directory must be writable, e.g. via a softlink to a user-writable directory)

For more information, view the targets in the Makefile.

CentOS CI

The following CentOS CI jobs are associated with the repository:

  • master - builds CentOS images on each commit to the master branch and pushes them to quay.io.
  • nightly - builds CentOS images and pushes them to quay.io on a daily basis from the master branch.
  • release - builds CentOS and corresponding RHEL images from the release branch. CentOS images are public and pushed to quay.io. RHEL images are also pushed to quay.io, but to the private repositories.

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.