Skip to content

Assess top ~15 CircleCI Orbs for missing features

https://circleci.com/orbs/registry/?filterBy=popular contains a list of popular orbs that add capabilities to CircleCI. Our aim at GitLab is to provide these kinds of functionalities out of the box - please review this list for your area and ensure that there is nothing missing. When you've completed the review, please link any new issues you've created or issues we already have that are relevant to this one.

Sourced from https://docs.google.com/document/d/1nMJzrDfG7C14WP5v7P226oPFuXkwqIk7bdIT8ai0DNU/edit?ts=5d84fb07&skip_itp2_check=true&pli=1#bookmark=id.qqt2eki4i3np

Orb Is it (or equivalent) built in to GitLab? If yes, link to docs Is it easy to find? Link to issues for building it in/improving discoverability, if needed
circleci/welcome-orb@0.4.1: Help new users get started building their projects with CircleCI. https://docs.gitlab.com/ee/ci/quick_start/ Yes
circleci/aws-cli@0.1.20: Install and configure the AWS command-line interface (awscli). https://docs.gitlab.com/ee/ci/cloud_deployment/index.html#aws done via gitlab-org/gitlab#31167 (closed) No gitlab-org/gitlab#207830 (closed)
circleci/aws-ecr@6.7.0: Build images and push them to the Amazon Elastic Container Registry. gitlab-org/gitlab#39089 (closed)
circleci/slack@3.4.2: Easily integrate custom Slack notifications into your CircleCI projects. https://docs.gitlab.com/ee/user/project/integrations/slack.html Yes
circleci/aws-s3@1.0.15: Integrate Amazon AWS S3 with your CircleCI CI/CD pipeline easily. gitlab-org/gitlab#207814
circleci/node@1.1.6: Simplify common tasks for building and testing Node projects.
circleci/aws-ecs@1.1.0: An orb for working with Amazon Elastic Container Service (ECS). * gitlab-org/gitlab#39089 (closed) *gitlab-org/gitlab#207823 (closed)
codecov/codecov@1.0.5: Upload your coverage reports to Codecov.
circleci/windows@2.4.0: A set of tools convenient for running Windows jobs on CircleCI.
cypress-io/cypress@1.16.1: Run your Cypress.io end-to-end browser tests.
circleci/python@0.2.1: Common CircleCI tasks for the Python programming language.
circleci/kubernetes@0.11.0: A collection of tools for working with Kubernetes on CircleCI. https://about.gitlab.com/solutions/kubernetes/
circleci/docker@0.5.20: Quickly and easily install/configure/use Docker
circleci/gcp-cli@1.8.3: Install and configure the Google Cloud CLI (gcloud) gitlab-org/gitlab#207828
circleci/aws-eks@0.2.6: An orb for working with Amazon Elastic Container Service for Kubernetes. https://docs.gitlab.com/ee/user/project/clusters/add_remove_clusters.html#new-eks-cluster Yes

CircleCI orb analysis

Definition

  • Orb: a collection of commands, executors and jobs.
  • Orb: An ORB condenses commands, executors, and jobs into single, reusable lines of code.
  • In other words - a CircleCI Orb is essentially a sub-module, or a package, that a CircleCi script can use.

circleci/aws-cli@0.1.20

  • Description: Install and configure the AWS command-line interface (awscli).
  • Notes: This ORB automates the installation of the AWS CLI so that it can be used in a pipeline. The aws-cli orb is not a complete wrapper around AWS's CLI. The orb only handles the installation and configuration of the AWS CLI so that it can be used in a pipeline
  • How can a user perform this task in GitLab? Step 1: The user will need to include the GitLab AWS Docker image in their .gitlab-ci.yml file. Step 2: In the GitLab project, the user will need to set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables. Step 3: In their .gitlab-ci.yml file the user is now able to specify aws-cli commands in the script block
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/aws-ecr@6.7.0

  • Description: ld images and push them to the Amazon Elastic Container Registry
  • Notes:
  • How can a user perform this task in GitLab? Step 1: The user will need to include in install script in the .gitlab-ci.yml file to install the AWS CLI. 2. User adds a login command to the .gitlab-ci.yml file. 3.User includes a docker push command, example docker push aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository to push the image to ECR
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No.

circleci/welcome-orb@0.4.1

  • Description: Help new users get started building their projects with CircleCI.
  • Notes: A basic ORB (package) that enables the user to create a pipeline with pre-packaged welcome messages and commands. Uses a CircleCI custom docker image. circleci/welcome-config-image:0.2.1
  • How can a user perform this task in GitLab? Use GitLab project templates and CI yaml templates
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/slack@3.4.2

  • Description: Easily integrate custom Slack notifications into your CircleCI projects. Create custom alert messages for any job or receive status updates
  • Notes:
  • How can a user perform this task in GitLab? Use GitLab's Slack integration.
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/aws-s3@1.0.15

  • Description: Integrate Amazon AWS S3 with your CircleCI CI/CD pipeline easily with the aws-s3 orb.
  • Notes:
  • How can a user perform this task in GitLab? Step 1: The user will need to include the GitLab AWS Docker image in their .gitlab-ci.yml file. Step 2: In the GitLab project, the user will need to set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables. Step 3: In their .gitlab-ci.yml file the user is now able to specify aws-cli commands in the script block. The aws-cli incldues commands for S3
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/aws-ecs@1.1.0

  • Description: An orb for working with Amazon Elastic Container Service (ECS). Supports the EC2 and Fargate launch types and Blue/Green deployment via CodeDeploy.
  • Notes:
  • How can a user perform this task in GitLab?
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: This one is interesting as the ORB provides the following capabilities: deploy-service-update - update an ECS service, update-task-definition - create a new task definition with the AWS cli and the orb, update-service - update a service on ECS with either Fargate or EC2 launch type, run-task-fargate - starts the run of an ECS task on Fargate. So it's possible to address these tasks today in a pipeline.

codecov/codecov@1.0.5

  • Description: Upload coverage reports to Codecov without dealing with complex configurations.
  • Notes:
  • How can a user perform this task in GitLab? Refer to codecov's docs for setup steps to enable integration with GitLab https://docs.codecov.io/docs/link-service-provider#section-gitlab-ceee
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/windows@2.4.0

  • Description: A set of tools convenient for running Windows jobs on CircleCI.
  • Notes: Note - this orb does allow the user to choose from various VM instance types. This is a capability not yet offered with Shared Runners on GitLab.com
  • How can a user perform this task in GitLab?
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: Partial - offer premium machine types.

cypress-io/cypress@1.15.0

circleci/node@1.1.6

  • Description: Simplify common tasks for building and testing Node projects
  • Notes:
  • How can a user perform this task in GitLab? Use GitLab project templates
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/kubernetes@0.11.0

  • Description: A collection of tools for working with Kubernetes on CircleCI.
  • Notes: This orb supports installing the kubectl and kops CLI tools and using kubectl for resource deployments. Commands: Create, update or delete a kubernetes resource;get the rollout status of a resource;install kops;install kubectl.
  • How can a user perform this task in GitLab? Autodevops for automating the build, test and deployment of an application to to a Kubernetes cluster. GitLab's integrated cluster creation for GKE and AWS EKS
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/docker@0.5.20

  • Description: Install/configure/use Docker, dockerize, and docker-compose in a CircleCI job.
  • Notes:
  • How can a user perform this task in GitLab? To build or test an application with Docker, a user would use a GitLab runner configure to use the docker executor. To enable the use of docker build and docker run during pipeline execution, a user can use the shell executor in the Runner. This method requires docker enginer be installed on the same system. In addition, a user can install docker compose so that it can be used in the pipeline job. Option gitlab-org/gitlab#2 (closed) is the use of the Docker-in-Docker image. Option gitlab-org/gitlab#3 (closed) - use the docker executor in GitLab runner with Docker socket binding.
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/gcp-gcr@0.6.1

  • Description: An orb for working with Google Container Registry | Enables a user to login to GCP, then build and push image to the Google Container Registry.
  • Notes:
  • How can a user perform this task in GitLab?
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/ruby@0.2.1

  • Description: Common CircleCI tasks for the Ruby programming language.
  • Notes: Enables the installation of Ruby within a build;install Ruby Gems;run tests;save Gems to cache.
  • How can a user perform this task in GitLab?
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No

circleci/gcp-cli@1.8.3

  • Description: Install and configure the Google Cloud CLI - gcloud
  • Notes:
  • How can a user perform this task in GitLab?
  • Runner: Are features needed in Runner to enable the capability provided by the ORB?: No
Edited by Kenny Johnston