All Projects → CircleCI-Public → orb-starter-kit

CircleCI-Public / orb-starter-kit

Licence: MIT License
A starter kit for new orb authors

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to orb-starter-kit

circleci
CircleCI Orbs for CI/CD using Pulumi.
Stars: ✭ 16 (-40.74%)
Mutual labels:  circleci, circleci-orbs
compare-url
CircleCI 2.1 pipelines disable the CIRCLE_COMPARE_URL environment variable, useful when working with monorepo projects. This orb manually recreates (and improves!) it.
Stars: ✭ 31 (+14.81%)
Mutual labels:  circleci, circleci-orbs
shellcheck-orb
An orb for ShellCheck, a static analysis tool for shell scripts (https://shellcheck.net) — check all scripts in your repository on every commit
Stars: ✭ 18 (-33.33%)
Mutual labels:  circleci, circleci-orbs
orbs
Swissknife! A set of useful commands / jobs in circle workflows
Stars: ✭ 27 (+0%)
Mutual labels:  circleci, circleci-orbs
docker-orb
Install/use various Docker-related tools on CircleCI
Stars: ✭ 18 (-33.33%)
Mutual labels:  circleci, circleci-orbs
docker-images
Docker images for Katalon Studio and other frameworks
Stars: ✭ 110 (+307.41%)
Mutual labels:  circleci
spellcard
A Leiningen template for k8s deployment automation.
Stars: ✭ 15 (-44.44%)
Mutual labels:  circleci
aspnet-mvc5-starter-template
Asp.Net MVC 5 Starter Kit is a S.O.L.I.D, clean and globalized template with all the necessary boilerplate, ready to go.
Stars: ✭ 39 (+44.44%)
Mutual labels:  starter-kit
circleci-demo-docker
Example application using Docker running on CircleCI 2.0
Stars: ✭ 113 (+318.52%)
Mutual labels:  circleci
yii2-starter-kit-lite
Yii2 Starter kit for begin your application
Stars: ✭ 41 (+51.85%)
Mutual labels:  starter-kit
mjml-starter-kit
MJML starter kit, create responsive emails very quickly using MJML and this productive toolchain
Stars: ✭ 35 (+29.63%)
Mutual labels:  starter-kit
aws-eks-orb
An orb to simplify deployments to Amazon Elastic Container Service for Kubernetes (Amazon EKS)
Stars: ✭ 16 (-40.74%)
Mutual labels:  circleci-orbs
argocd-operator-helm
[DEPRECATED] Argo CD Operator (Helm) installs Argo CD in OpenShift and Kubernetes.
Stars: ✭ 18 (-33.33%)
Mutual labels:  circleci
symfony-docker
A template for new Symfony applications using Docker: ./install.sh && 🚀
Stars: ✭ 34 (+25.93%)
Mutual labels:  starter-kit
obsidian
A WordPress starter kit for the modern web.
Stars: ✭ 20 (-25.93%)
Mutual labels:  starter-kit
spring-boot-microservice-best-practices
Best practices and integrations available for Spring Boot based Microservice in a single repository.
Stars: ✭ 139 (+414.81%)
Mutual labels:  circleci
rescript-react-boilerplate
An opinionated app shell for ReScript & React progressive web apps
Stars: ✭ 62 (+129.63%)
Mutual labels:  starter-kit
react-sendbird-messenger
ReactJS (React-router-dom v6 + Antdesign + Firebase + Sendbird + Sentry) codebase containing real world examples (CRUD, auth, advanced patterns, etc).
Stars: ✭ 39 (+44.44%)
Mutual labels:  circleci
jt tools
Ruby on Rails Continuous Deployment Ecosystem to maintain Healthy Stable Development
Stars: ✭ 13 (-51.85%)
Mutual labels:  circleci
awrora-starter
Landing page template built with one of most popular javascript library Vue.JS, Vuetify (Material Design) and Nuxt.JS with SSR.
Stars: ✭ 38 (+40.74%)
Mutual labels:  starter-kit

Deprecation Notice

This starter kit has been deprecated in favour of the orb init command included in the CircleCI CLI, which pairs with the new Orb Project Template to make it easier to start up an orb.

Read more about the new process

Orb Starter Kit CircleCI Build Status CircleCI Community

The Orb Starter Kit is a bash utility that makes creating your first orb a breeze!

What are orbs? Orbs are reusable commands, executors, and jobs (as well as usage examples)—snippets of CircleCI configuration—that can be shared across teams and projects. See CircleCI Orbs, Explore Orbs, Creating Orbs, and Using Orbs for further information.

What is in this kit?

This kit includes three main components:

  • Orb init script.
    • The Orb init script will auytomatically generate for you a new GitHub repository with all of the source code needed to get started developing your own orb, complete with automation pipeline
  • Hello World template.
    • Within the /src folder you can find find the destructured source of a simple "Hello World" orb. You can simply copy this code and begin hacking, or initialize it with our orb init script.
  • Automated CI/CD Pipeline.
    • After you run the init script you will also be automatically given a development pipeline to test and update your orb on CircleCI.
    • Automated Semver release process
    • Automated Integration Testing
    • No need to use CLI commands.

Prerequisites

Before getting started you will need the the following things:

  1. A CircleCI account.
  2. Git installed and configured locally.
  3. A CircleCI Personal API Token (Must be Org admin to claim a namespace and publish production Orbs)

Usage

Getting started

1. Clone this repo into a new directory with the name of your orb:

git clone [email protected]:CircleCI-Public/orb-starter-kit.git My-Orb-Name

2. Create a new repository on GitHub with the same name. https://github.com/new

3. Run the orb-init.sh script to begin.

asciicast

The Orb Init script will automate the following tasks:

  • Install and update the CircleCI CLI
  • Request a CircleCI API token if none is currently set.
  • Check to ensure git is installed and authenticated with GitHub.
  • Connect your repository with the blank repo created in step 2.
  • Create and switch to an "Alpha" branch
  • Walk through creating a new orb via the CircleCI CLI
  • Allow you to optionally enable advanced features.
  • Create your customized config file
  • Clean up - The script will remove itself from the repo for the next commit.
  • Commit alpha branch with changes to GitHub.

Your orb will now be available at <your namespace>/<your orb>@dev:Alpha

The script will end by giving you a link to the running automated pipeline on your CircleCI account which will be building a "Hello World" orb.

4. Begin editing.

You may now edit the contents of the /src folder and commit your changes to the Alpha branch or any non-master branch.

5. Build and test!

All commits to non-master branches will automatically result in the creation of a development orb under that branch. The automated pipeline will then run your integration tests against that newly created dev orb.

6. Publish!

Once ready to produce a new production version of your orb, you may merge your branch into the master branch to trigger the automated release process.

Recommended: If you have enabled the fail-if-semver-not-indicated option, your commit message when merging to master MUST include [semver:patch|minor|major|skip] to designate the release type.

You will need to manually publish the production version of your Orb for the initial version before the automated pipeline can update your production version later on. This is not needed on subsequent pushes.

Once the orb is complete, you will have two new Green workflows in your CircleCI account. The first one is for the initial setup and the second one will have produced a development version of your orb which contains a sample Command, Executor, and Job.

Writing your orb

This orb provides a basic directory/file structure for a decomposed orb (where commands, jobs, examples, and executors each live in their own YAML file). Create each of your commands, jobs, examples, and executors within the requisite folders in the src directory.

Following are some resources to help you build and test your orb:

Permissions

Explanation of all permissions required for the script.

  • sudo - The CircleCI CLI Update command will request sudo permissions to update.

Preview

Preview "Hello-World" Orb produced by this repo by default.
commands:
  greet:
    description: |
      Replace this text with a description for this command. # What will this command do? # Descriptions should be short, simple, and clear.
    parameters:
      greeting:
        default: Hello
        description: Select a proper greeting
        type: string
    steps:
    - run:
        command: echo << parameters.greeting >> world
        name: Hello World
description: |
  Sample orb description # What will your orb allow users to do? # Descriptions should be short, simple, and clear.
examples:
  example:
    description: |
      Sample example description. # What will this example document? # Descriptions should be short, simple, and clear.
    usage:
      jobs:
        build:
          machine: true
          steps:
          - foo/hello:
              username: Anna
      orbs:
        foo: bar/[email protected]
      version: 2.1
executors:
  default:
    description: |
      This is a sample executor using Docker and Node. # What is this executor? # Descriptions should be short, simple, and clear.
    docker:
    - image: circleci/node:<<parameters.tag>>
    parameters:
      tag:
        default: latest
        description: |
          Pick a specific circleci/node image variant: https://hub.docker.com/r/circleci/node/tags
        type: string
jobs:
  hello:
    description: |
      # What will this job do? # Descriptions should be short, simple, and clear.
    executor: default
    parameters:
      greeting:
        default: Hello
        description: Select a proper greeting
        type: string
    steps:
    - greet:
        greeting: << parameters.greeting >>
orbs:
  hello: circleci/[email protected]
version: 2.1
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].