Giter VIP home page Giter VIP logo

exchange's Introduction

Flywheel Exchange

This repository consists of three distinct assets:

  • User-generated, weakly-versioned boutiques and gears
  • Machine-generated, strongly-versioned manifests
  • Manifest processing code

Manifest processing code is automatically executed by CircleCI whenever a new commit gets pushed. It validates weakly-versioned boutiques and gears and converts them to strongly-versioned manifests and rootfs build artifacts.

Usage

To add a new gear to the Exchange, or to update an existing one, follow these steps:

  • Create a properly-formatted gear manifest, with a unique version, following the Flywheel Example Gear.
  • Optionally, publish the gear's source code, e.g., on GitHub.
  • Publish a tagged Docker image of the gear, e.g., on Docker Hub.
  • Your manifest must reference the Docker image location and tag under custom.docker-image.
  • Open a pull request against this repo that adds your manifest to gears/<GitHub org>/<gear-name>.

Operation

Exchange Operation

For each new commit to the master branch:

  • Retrieve git hash of latest successfully-processed commit
  • For each updated weakly-versioned boutique or gear
    • Validate boutique or gear against the respective schema
    • Generate strongly-versioned rootfs build artifact
    • Upload build artifact to storage bucket
    • Derive strongly-versioned manifest that references the uploaded build artifact
  • Commit all new strongly-versioned manifests
  • Update successfully-processed commit hash
  • Push all commits to GitHub
  • If push fails, delete build artifacts from storage bucket

For each new commit to any non-master branch:

  • For each weakly-versioned boutique or gear
    • Validate boutique or gear against the respective schema

Technical Notes

The following commands are useful for adding a gear from scitran-apps or flywheel-apps to the Exchange. Only the first line needs to be modified, provided that the gear is hosted in the expected location on Docker Hub.

ORG=[flyhweel|scitran]; REPO=repo
curl -s https://raw.githubusercontent.com/$ORG-apps/$REPO/master/manifest.json | jq --indent 4 ".custom.\"docker-image\"=\"$ORG/$REPO\"" > gears/$ORG/$REPO.json
git add gears
git commit -m "Add $REPO gear"
git show

exchange's People

Contributors

amyhegarty avatar andysworth avatar dpark6060 avatar ehlertjd avatar f4bry avatar flywheel-exchange avatar garikoitz avatar gsfr avatar hkethi002 avatar jiavila avatar joshicola avatar kalebdfischer avatar kofalt avatar lmperry avatar ltorres6 avatar margaretmahan avatar mehulsampat avatar mesutozdag avatar mpsampat avatar naterichman avatar neurosutton avatar npann avatar pvelasco avatar qian587 avatar ryansanford avatar sustrev avatar tcbtcb avatar thorpe7 avatar tinashemtapera avatar yarikoptic 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.