Back to Devops Exercises

Circle CI

topics/circleci/README.md

latest2.4 KB
Original Source

Circle CI

Circle CI Questions

Circle CI 101

<details> <summary>What is Circle CI?</summary> <b>

Circle CI: "CircleCI is a continuous integration and continuous delivery platform that can be used to implement DevOps practices." </b></details>

<details> <summary>What are some benefits of Circle CI?</summary> <b>

Circle CI Docs: "SSH into any job to debug your build issues. Set up parallelism in your .circleci/config.yml file to run jobs faster. Configure caching with two simple keys to reuse data from previous jobs in your workflow. Configure self-hosted runners for unique platform support. Access Arm resources for the machine executor. Use orbs, reusable packages of configuration, to integrate with third parties. Use pre-built Docker images in a variety of languages. Use the API to retrieve information about jobs and workflows. Use the CLI to access advanced tools locally. Get flaky test detection with test insights." </b></details>

<details> <summary>Explain the following:
  • Pipeline
  • Workflow
  • Jobs
  • Steps
</summary> <b>
  • Pipeline: the entire CI/CD configuration (.circleci/config.yaml)
  • Workflow: primarily used when there is more than one job in the configuration to orchestrate the workflows
  • Jobs: One or more steps to execute as part of the CI/CD process
  • Steps: The actual commands to execute </b></details>
<details> <summary>What is an Orb?</summary> <b>

Circle CI Docs: "Orbs are shareable packages of CircleCI configuration you can use to simplify your builds"

They can come from the public registry or defined privately as part of an organization. </b></details>

Circle CI Hands-On 101

<details> <summary>Where (in what location in the project) Circle CI pipelines are defined?</summary> <b>

.circleci/config.yml </b></details>

<details> <summary>Explain the following configuration file
version: 2.1

jobs:
  say-hello:
    docker:
      - image: cimg/base:stable
    steps:
      - checkout
      - run:
          name: "Say hello"
          command: "echo Hello, World!"
workflows:
  say-hello-workflow:
    jobs:
      - say-hello
</summary> <b>

This configuration file will set up one job that will checkout the code of the project will run the command echo Hello, World!. It will run in a container using the image cimg/base:stable. </b></details>