Giter Club home page Giter Club logo

circleci-orbs's Introduction

CircleCI Orbs

This repository keeps track of the Orbs Arrai Innovations publishes to the CircleCI Orb registry. While available for public consumption, these are tailored towards our CI process. These orbs are published into the arrai namespace.

Note to contributors: The Orb Registry is public; private data should be passed via variables configured in the CI interface or stored in the appropriate private repo.

Available Orbs

This repository currently contains the following Orbs:

badass

This Orb provides an environment for running our BMS/Django tests. Not likely to be useful for testing Django instances not built or based on BMS. For a description of the Orb, refer to the generated documentation.

flake8

Provides functionality for running flake8 on the project code. Errors and warnings are reported in separate steps. Note that warnings are treated as job failures. For a decription of the Orb, available steps, parameters, etc, refer to the generated documentation.

eslint

Runs eslint on the project code. Note that any warnings are treated as job failures. For more details, refer to the generated documentation.

deepcode

Runs the DeepCode CLI on the project code. Note that suggestions of any severity (info, warning, or critical) are treated as job failures. For more details, refer to the generated documentation.

utils

This orb provides utility functions such as status badging, file uploads, and ssh key import. This is required by the other orbs. For information on the available utility functions, refer to the documentation.

Publishing Orbs

There are a few things to keep in mind when publishing new Orbs to the registry. Orbs are to be published using semver. Versioning is taken care of automatically by specifying one of patch, minor, or major when publishing. Publishing a new release works by promoting a previously published dev version. Since references to Orbs are versioned, a new release has no impact on existing project configurations or Orbs.

In order to publish Orbs to the registry, install the circleci CLI application. Run circleci setup to configure the tool once installed.

If you are creating a new Orb, you must first create it in the registry: circleci orb create arrai/example. Skip this if you're updating an existing Orb.

After making the requisite changes, you can check for syntactic validity by running: circleci orb validate example.yml. Note that the registry will prevent you from publishing Orbs containing syntax errors.

You can then publish a dev version of your Orb: circleci orb publish example.yml arrai/example@dev:1. You can now reference this Orb in project-specific configs or other Orbs. Unlike release Orbs, development Orbs are mutable and will be deleted after 90 days.

Once you're ready to promote your Orb to release, determine whether this counts as a patch, minor, or major release; this will be passed into the promote command: circleci orb publish promote arrai/example@dev:1 patch. The command will return the version number used for the Orb; use this to reference the new Orb in your project CI configurations.

circleci-orbs's People

Contributors

james-osgood avatar jhillacre avatar pmack 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.