devops-exercises/topics/circleci/README.md
abregman 422a48a34c Add k8s questions
Updated CKA page as well.
2022-10-21 12:02:59 +03:00

85 lines
2.4 KiB
Markdown

# Circle CI
## Circle CI Questions
### Circle CI 101
<details>
<summary>What is Circle CI?</summary><br><b>
[Circle CI](https://circleci.com): "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><br><b>
[Circle CI Docs](https://circleci.com/docs/about-circleci): "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><br><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><br><b>
[Circle CI Docs](https://circleci.com/developer/orbs): "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><br><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><br><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>