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.
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 |
-
Verify CI @jyavorska -
Verify Templates @thaoyeager -
Verify Runner @DarrenEastman -
Verify Testing @jheimbuck_gl - Documented in notes below.
-
Package @trizzi -
Release Progressive Delivery @ogolowinski - https://circleci.com/orbs/registry/orb/circleci/aws-cli supported by gitlab-org/gitlab#31167 (closed)
- https://circleci.com/orbs/registry/orb/circleci/aws-ecr - supported via https://medium.com/@stijnbe/using-gitlab-ci-with-aws-container-registry-ecaf4a37d791. New issue opened gitlab-org/gitlab#207629
- https://circleci.com/orbs/registry/orb/circleci/aws-ecs - Already supported via https://medium.com/faun/deploy-to-aws-ecs-using-gitlab-ci-7beb40dbf9 will be added via gitlab-org/gitlab#39089 (closed)
- https://circleci.com/orbs/registry/orb/circleci/slack Supported by https://docs.gitlab.com/ee/user/project/integrations/slack.html
- https://circleci.com/orbs/registry/orb/circleci/welcome-orb Supported by https://docs.gitlab.com/ee/ci/quick_start/
- https://circleci.com/orbs/registry/orb/circleci/aws-s3 supported by CI/CD Using Gitlab CI And Amazon AWS S3
- https://circleci.com/orbs/registry/orb/circleci/aws-eks Supported by https://docs.gitlab.com/ee/user/project/clusters/add_remove_clusters.html#new-eks-cluster
- https://circleci.com/orbs/registry/orb/circleci/gcp-gcr Supported by https://medium.com/@gaforres/publishing-google-cloud-container-registry-images-from-gitlab-ci-23c45356ff0e. Added new issue gitlab-org/gitlab#207644
- https://circleci.com/orbs/registry/orb/circleci/kubernetes Supported by https://about.gitlab.com/solutions/kubernetes/
-
Release Release Management @jmeshell - What I think we support today kinda in my area:
- CI Orb for Assume Role - GitLab's Solution
- Digital Ocean K8 Support - GitLab's Solution
- Help users get started in CircleCi - GitLab Project Templates
- circleci/aws-s3@1.0.15 - GitLab Solution for Integrating AWS S3
- Persist Environment Variable CI Orbs - GitLab Custom Variables
- circleci/jira@1.1.2 - GitLab + Jira Solution
- What I think we support today kinda in my area:
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
andAWS_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
andAWS_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
- Description: Run your Cypress.io end-to-end browser tests without spending time configuring CircleCI. This orb can also record results on the Cypress Dashboard and load balance tests in parallel mode
- Notes:
- How can a user perform this task in GitLab? Users can start with an image that already includes Cypress tool. https://github.com/cypress-io/cypress-example-kitchensink/blob/master/.gitlab-ci.yml https://gitlab.com/cypress-io/cypress-example-docker-gitlab
- Runner: Are features needed in Runner to enable the capability provided by the ORB?: No
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
, anddocker-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