---
tags:
- devops
- l1
- flashcard-deck
- cicd
---
<!-- wiki:breadcrumb:start -->
[Portal](../../../../library/portal/index.md) | **Level:** [L1: Foundations](../../../../library/portal/levels.md) | **Topics:** [CI/CD](../../../../library/portal/topics.md) | **Domain:** DevOps & Tooling
<!-- wiki:breadcrumb:end -->

id	category	difficulty	tags	question	answer	source_path
cicd/01040d4c4b8f	cicd	hard	cicd, pipeline, testing, secrets	How do you measure your CI/CD quality? Are there any metrics or KPIs you are using for measuring the quality?	Measuring the quality of CI/CD processes is crucial to identify areas for improvement, ensure efficient and reliable software delivery, and achieve continuous improvement. Here are some commonly used metrics and KPIs (Key Performance Indicators) to measure CI/CD quality:\n\n1. Build Success Rate: This metric measures the percentage of successful builds compared to the total number of builds. A high build success rate indicates that the majority of builds are successful and the CI/CD pipeline is stable.\n2.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/011-how-do-you-measure-your-cicd-quality-are-there-any.txt
cicd/0b879901c3fb	cicd	hard	cicd, pipeline, testing, deployment	How would you structure/implement CD for an application which depends on several other applications?	Implementing Continuous Deployment (CD) for an application that depends on several other applications requires careful planning and coordination to ensure smooth and efficient deployment of changes across the entire ecosystem. Here are some general steps to structure/implement CD for an application with dependencies:\n\n1. Define the deployment pipeline\n2. Automate the deployment process\n3. Version control and dependency management\n4. Continuous integration and testing\n5. Rolling deployments\n6. Monitor and manage dependencies\n7. Testing across the ecosystem\n8.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/010-how-would-you-structureimplement-cd-for-an-applica.txt
cicd/1044513ea71b	cicd	easy	cicd, testing, deployment	What is CI/CD and why is it important in DevOps?	Automation of the building, testing, and deployment of apps.\n\nName origin: CI = Continuous Integration (merge + test frequently). CD = Continuous Delivery (automated release pipeline) or Continuous Deployment (auto-deploy to prod).\n\nFun fact: CI was popularized by Martin Fowler and Kent Beck in early 2000s Extreme Programming (XP).\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/041-what-is-cicd.txt
cicd/13253baeffd5	cicd	medium	cicd, pipeline, testing	What is an Action in GitHub Actions?	An action is the smallest unit in a workflow. It includes the commands to execute as part of the job.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/034-what-is-an-action-in-github-actions.txt
cicd/166b8901da48	cicd	medium	cicd, pipeline, stages	How do you perform plan capacity for your CI/CD resources? (e.g. servers, storage, etc.)	Capacity planning for CI/CD resources involves estimating the resources required to support the CI/CD pipeline and ensuring that the infrastructure has enough capacity to meet the demands of the pipeline. Here are some steps to perform capacity planning for CI/CD resources:\n\n1. Analyze workload\n2. Monitor current usage\n3. Identify resource bottlenecks\n4. Forecast future demand\n5. Plan for growth\n6. Consider scalability and elasticity\n7. Evaluate cost and budget\n8.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/009-how-do-you-perform-plan-capacity-for-your-cicd-res.txt
cicd/1c8ad834f736	cicd	medium	cicd, secrets, pipeline	What are the advantages of Jenkins over its competitors? Can you compare it to one of the following systems?	Jenkins has several advantages over its competitors, including Travis, Bamboo, TeamCity, and CircleCI. Here are some of the key advantages:\n\n1. Open-source and free\n2. Customizable and flexible\n3. Wide range of integrations and Plugins\n4. Active and supportive community\n\nWhen comparing Jenkins to its competitors, there are some key differences in terms of features and capabilities. For example:\n\n- Travis: Travis is a cloud-based CI/CD platform that is known for its ease of use and fast setup.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/013-what-are-the-advantages-of-jenkins-over-its-compet.txt
cicd/1e25aa8eec4e	cicd	medium	cicd, triggers, pipeline	How did you report build results to users? What ways are there to report the results?	You can report via:\n  * Emails\n  * Messaging apps\n  * Dashboards\n\nEach has its own disadvantages and advantages. Emails for example, if sent too often, can be eventually disregarded or ignored.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/019-how-did-you-report-build-results-to-users-what-way.txt
cicd/220244cf7c51	cicd	hard	cicd, pipeline, testing, artifacts	You need to run unit tests every time a change submitted to a given project. Describe in details how your pipeline would look like and what will be executed in each stage	The pipelines will have multiple stages:\n\n  * Clone the project\n  * Install test dependencies (for example, if I need tox package to run the tests, I will install it in this stage)\n  * Run unit tests\n  * (Optional) report results (For example an email to the users)\n  * Archive the relevant logs/files\n\nRemember: typical pipeline stages: Source -> Build -> Test -> Deploy. Mnemonic: 'Source Builds Tests Deployed.'	projects/knowledge/interview/cicd/020-you-need-to-run-unit-tests-every-time-a-change-sub.txt
cicd/27d606ea7fe7	cicd	medium	cicd, pipeline, testing	How to add a Workflow to a repository?	"CLI:\n\n1. Create the directory `.github/workflows` in the repository\n2. Add a YAML file\n\nUI:\n\n1. In the repository page, click on ""Actions""\n2. Choose workflow and click on ""Set up this workflow""\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix."	projects/knowledge/interview/cicd/037-how-to-add-a-workflow-to-a-repository.txt
cicd/281fcd83c19a	cicd	medium	cicd, pipeline, testing, deployment	What is the difference between Continuous Integration, Continuous Delivery, and Continuous Deployment?	These are three related but distinct practices in modern software development:\n\nContinuous Integration (CI):\n- Developers frequently merge code to shared repository\n- Each merge triggers automated build and tests\n- Catches integration issues early\n- Goal: Always have working, tested code in main branch\n\nContinuous Delivery (CD):\n- Extends CI: code is always in deployable state\n- Automated pipeline builds, tests, and prepares releases\n- Deployment to production requires MANUAL approval\n- Goal: Can deploy any version at any time with one click\n\nContinuous Deployment:\\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/053-ci-vs-cd.txt
cicd/2ab1e7db3f6d	cicd	hard	cicd, pipeline, stages, triggers	There are four teams in your organization. How to prioritize the builds of each team? So the jobs of team x will always run before team y for example	"In Jenkins, you can prioritize the builds of each team by using the ""Priority Sorter"" plugin. Here are the steps to set up build prioritization:\n\n1. Install the ""Priority Sorter"" plugin if it's not already installed in Jenkins.\n2. Go to the Jenkins system configuration page and click on ""Configure Global Security"". Scroll down to the ""Access Control"" section and click on ""Per-project basis"".\n3. In the ""Project default actions"" section, select ""Configure build triggers and execution"" from the dropdown menu.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix."	projects/knowledge/interview/cicd/025-there-are-four-teams-in-your-organization-how-to-p.txt
cicd/2e3fa2d042e0	cicd	medium	cicd, pipeline, testing	What is the different between a scripted pipeline to declarative pipeline? Which type are you using?	Jenkins supports two types of pipelines: Scripted pipelines and Declarative pipelines.\n\nScripted pipelines use Groovy syntax and provide a high degree of flexibility and control over the build process. Scripted pipelines allow developers to write custom code to handle complex scenarios, but can be complex and hard to maintain.\n\nDeclarative pipelines are a newer feature and provide a simpler way to define pipelines using a structured Groovy DSL.\n\nRemember: typical pipeline stages: Source -> Build -> Test -> Deploy. Mnemonic: 'Source Builds Tests Deployed.'	projects/knowledge/interview/cicd/028-what-is-the-different-between-a-scripted-pipeline-.txt
cicd/300a56bdc52c	cicd	medium	cicd, pipeline, triggers	In GitHub Actions workflow, what the 'on' attribute/directive is used for?	Specify upon which events the workflow will be triggered. \nFor example, you might configure the workflow to trigger every time a changed is pushed to the repository.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/035-in-github-actions-workflow-what-the-on-attributedi.txt
cicd/31ee0a076888	cicd	easy	cicd, testing, deployment	"What is a ""build server""?"	A machine that compiles projects, runs tests, and deploys apps.\n\nRemember: a good CI/CD pipeline is fast (<10 min), reliable (no flaky tests), and informative (clear failure messages). Slow pipelines kill developer productivity.\n\nGotcha: flaky tests erode trust in CI. Fix or quarantine them immediately. A pipeline that cries wolf is a pipeline that gets ignored.	projects/knowledge/interview/cicd/047-build-server.txt
cicd/32911ab7ce9a	cicd	medium	cicd, pipeline, testing	Where do you store CI/CD pipelines? Why?	There are multiple approaches as to where to store the CI/CD pipeline definitions:\n\n1. App Repository - store them in the same repository of the application they are building or testing (perhaps the most popular one)\n2. Central Repository - store all organization's/project's CI/CD pipelines in one separate repository (perhaps the best approach when multiple teams test the same set of projects and they end up having many pipelines)\n3.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/008-where-do-you-store-cicd-pipelines-why.txt
cicd/3427f489ebce	cicd	medium	cicd, pipeline, testing, deployment	What is difference between Continuous Delivery and Continuous Deployment?	Both encapsulate the same process of deploying the changes which were compiled and/or tested in the CI pipelines. \nThe difference between the two is that Continuous Delivery isn't fully automated process as opposed to Continuous Deployment where every change that is tested in the process is eventually deployed to production. In continuous delivery someone is either approving the deployment process or the deployment process is based on constraints and conditions (like time constraint of deploying every week/month/...)\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/005-what-is-difference-between-continuous-delivery-and.txt
cicd/3bb4f84da8aa	cicd	easy	cicd, pipeline, testing, artifacts	What is a Workflow in GitHub Actions?	A YAML file that defines the automation actions and instructions to execute upon a specific event. \nThe file is placed in the repository itself.\n\nA Workflow can be anything - running tests, compiling code, building packages, ...\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/031-what-is-a-workflow-in-github-actions.txt
cicd/42e3d76b3bbd	cicd	easy	cicd, pipeline, runners	What is a Runner in GitHub Actions?	A workflow has to be executed somewhere. The environment where the workflow is executed is called Runner. \nA Runner can be an on-premise host or GitHub hoste\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/032-what-is-a-runner-in-github-actions.txt
cicd/4399f094cf61	cicd	medium	cicd, pipeline, testing, stages	What are some of Jenkins limitations?	* Testing cross-dependencies (changes from multiple projects together)\n  * Starting builds from any stage (although Cloudbees implemented something called checkpoints)\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/027-what-are-some-of-jenkins-limitations.txt
cicd/48ed637d1e0f	cicd	hard	cicd, pipeline, stages	Whenever a build fails, you would like to notify the team owning the job regarding the failure and provide failure reason. How would you do that?	"In Jenkins, you can use the ""Email Notification"" plugin to notify a team when a build fails. Here are the steps to set up email notifications for failed builds:\n\n1. Install the ""Email Notification"" plugin if it's not already installed in Jenkins.\n2. Go to the Jenkins job configuration page and click on ""Configure"".\n3. Scroll down to the ""Post-build Actions"" section and click on ""Add post-build action"".\n4. Select ""Editable Email Notification"" from the list of options.\n5. Fill out the required fields, such as the recipient email addresses, subject line, and email content."	projects/knowledge/interview/cicd/024-whenever-a-build-fails-you-would-like-to-notify-th.txt
cicd/4d2462c3e886	cicd	medium	cicd, pipeline, triggers	In Zuul, What are the check pipelines?	`check` pipeline are triggered when a patch is uploaded to a code review system (e.g. Gerrit).\n\nRemember: typical pipeline stages: Source -> Build -> Test -> Deploy. Mnemonic: 'Source Builds Tests Deployed.'	projects/knowledge/interview/cicd/038-in-zuul-what-are-the-check-pipelines.txt
cicd/565491703819	cicd	medium	cicd, pipeline, triggers	In Zuul, What are the gate pipelines?	`gate` pipeline are triggered when a code reviewer approves the change in a code review system (e.g. Gerrit)\n\nRemember: typical pipeline stages: Source -> Build -> Test -> Deploy. Mnemonic: 'Source Builds Tests Deployed.'	projects/knowledge/interview/cicd/039-in-zuul-what-are-the-gate-pipelines.txt
cicd/61acad552f0f	cicd	medium	cicd, pipeline, testing, deployment	What is Jenkins? What have you used it for?	Jenkins is an open source automation tool written in Java with plugins built for Continuous Integration purpose. Jenkins is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. It also allows you to continuously deliver your software by integrating with a large number of testing and deployment technologies.\n\nJenkins integrates development life-cycle processes of all kinds, including build, document, test, package, stage, deploy, static analysis and much more.	projects/knowledge/interview/cicd/012-what-is-jenkins-what-have-you-used-it-for.txt
cicd/77e31e50d4b4	cicd	easy	cicd, artifacts, pipeline	"What is an ""artifact""?"	A file (e.g., binary or library) produced by the build process.\n\nExample: compiled binaries, JAR/WAR files, Docker images, npm packages, Helm charts, test reports, and coverage files are all artifacts.\n\nRemember: artifacts = build outputs (JARs, Docker images, binaries). Store in registries (Artifactory, ECR, Docker Hub). Version everything.\n\nGotcha: artifacts should be immutable — never rebuild for production. Build once, promote the same artifact through staging to production.\n\nRemember: artifacts = build outputs (JARs, Docker images, binaries). Store in registries (Artifactory, ECR, Docker Hub). Version everything.	projects/knowledge/interview/cicd/051-artifact.txt
cicd/79cea97ba388	cicd	medium	cicd, pipeline, deployment, runners	You are given a pipeline and a pool with 3 workers: virtual machine, baremetal and a container. How will you decide on which one of them to run the pipeline?	The decision on which type of worker (virtual machine, bare-metal, or container) to use for running a pipeline would depend on several factors, including the nature of the pipeline, the requirements of the software being built, the available resources, and the specific goals and constraints of the development and deployment process. Here are some considerations that can help in making the decision:\n\n1. Pipeline requirements\n2. Resource availability\n3. Scalability and flexibility\n4. Deployment and isolation requirements\n5. Security considerations\n6.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/007-you-are-given-a-pipeline-and-a-pool-with-3-workers.txt
cicd/824ecdd0ef2e	cicd	hard	cicd, pipeline, stages, triggers	What type of jobs are there? Which types have you used?	In Jenkins, there are various types of jobs, including:\n\n1. Freestyle job: This is the most common type of job in Jenkins, which allows users to define custom build steps and configure various options, including build triggers, SCM polling, and post-build actions.\n2. Pipeline job: Pipeline job is a newer feature in Jenkins that allows users to define a pipeline of jobs that can be executed in a specific order. The pipeline can be defined using a Jenkinsfile, which provides a script-like syntax for defining the pipeline stages, steps, and conditions.\n3.	projects/knowledge/interview/cicd/018-what-type-of-jobs-are-there-which-types-have-you-u.txt
cicd/8267928ebd11	cicd	medium	cicd, pipeline, stages	What plugins have you used in Jenkins?	Jenkins has a vast library of plugins, and the most commonly used plugins depend on the specific needs and requirements of each organization. However, here are some of the most popular and widely used plugins in Jenkins:\n\n    Pipeline: This plugin allows users to create and manage complex, multi-stage pipelines using a simple and easy-to-use scripting language.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/016-what-plugins-have-you-used-in-jenkins.txt
cicd/8369967c73bf	cicd	medium	cicd, pipeline, testing	How to create dependencies between jobs so one job runs after another?	"Using the ""needs"" attribute/directive.\n\n```\njobs:\n  job1:\n  job2:\n    needs: job1\n```\n\nIn the above example, job1 must complete successfully before job2 runs\n\nRemember: a good CI/CD pipeline is fast (<10 min), reliable (no flaky tests), and informative (clear failure messages). Slow pipelines kill developer productivity.\n\nGotcha: flaky tests erode trust in CI. Fix or quarantine them immediately. A pipeline that cries wolf is a pipeline that gets ignored."	projects/knowledge/interview/cicd/036-how-to-create-dependencies-between-jobs-so-one-job.txt
cicd/8b0bce715ef6	cicd	medium	cicd, pipeline, testing	True or False? gate pipelines run after the check pipelines	True. `check` pipeline run when the change is uploaded, while the `gate` pipelines run when the change is approved by a reviewer\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/040-true-or-false-gate-pipelines-run-after-the-check-p.txt
cicd/93ab5a26ddfe	cicd	medium	cicd, testing, pipeline	What is Continuous Integration?	A development practice where developers integrate code into a shared repository frequently. It can range from a couple of changes every day or a week to a couple of changes in one hour in larger scales.\n\nEach piece of code (change/patch) is verified to make sure that the change is safe to merge. Today, it's a common practice to test the change using an automated build that makes sure the code can be integrated.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/001-what-is-continuous-integration.txt
cicd/95ab6ecf10a5	cicd	medium	cicd, testing, deployment	What is Continuous Delivery?	A development strategy used to frequently deliver code to QA and Ops for testing. This entails having a staging area that has production like features where changes can only be accepted for production after a manual review. Because of this human entanglement there is usually a time lag between release and review making it slower and error prone as compared to continuous deployment.\n\nFor more info please read [here](https://www.atlassian.com/continuous-delivery/continuous-deployment)\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/004-what-is-continuous-delivery.txt
cicd/95fe62ef9de1	cicd	easy	cicd, pipeline, stages	"What is a ""Jenkinsfile""?"	A script defining the pipeline steps for a Jenkins job.\n\nRemember: a good CI/CD pipeline is fast (<10 min), reliable (no flaky tests), and informative (clear failure messages). Slow pipelines kill developer productivity.\n\nGotcha: flaky tests erode trust in CI. Fix or quarantine them immediately. A pipeline that cries wolf is a pipeline that gets ignored.	projects/knowledge/interview/cicd/046-jenkinsfile.txt
cicd/9664e76323bb	cicd	medium	cicd, pipeline, testing, deployment	What is Continuous Deployment?	A development strategy used by developers to release software automatically into production where any code commit must pass through an automated testing phase. Only when this is successful is the release considered production worthy. This eliminates any human interaction and should be implemented only after production-ready pipelines have been set with real-time monitoring and reporting of deployed assets.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/002-what-is-continuous-deployment.txt
cicd/98a99d9f2d46	cicd	hard	cicd, pipeline, runners, stages	How to acquire multiple nodes for one specific build?	"To acquire multiple nodes for a specific build in Jenkins, you can use the ""Parallel"" feature in the pipeline script. The ""Parallel"" feature allows you to run multiple stages in parallel, and each stage can run on a different node.\n\nHere is an example pipeline script that demonstrates how to acquire multiple nodes for a specific build:\n\n```tsx\npipeline {\n    agent any\n    stages {\n        stage('Build') {\n            parallel {\n                stage('Node 1') {\n                    agent { label 'node1' }\n                    steps {\\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix."	projects/knowledge/interview/cicd/023-how-to-acquire-multiple-nodes-for-one-specific-bui.txt
cicd/a02b5449c37b	cicd	easy	cicd, pipeline, runners, stages	What is a Job in GitHub Actions?	A job is a series of steps which are executed on the same runner/environment. \nA workflow must include at least one job.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/033-what-is-a-job-in-github-actions.txt
cicd/abc30f1d6e7f	cicd	hard	cicd, pipeline, testing	What are the limitations or disadvantages of Jenkins?	This might be considered to be an opinionated answer:\n\n* Old fashioned dashboards with not many options to customize it\n* Containers readiness (this has improved with Jenkins X)\n* By itself, it doesn't have many features. On the other hand, there many plugins created by the community to expand its abilities\n* Managing Jenkins and its pipelines as a code can be one hell of a nightmare\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/014-what-are-the-limitations-or-disadvantages-of-jenki.txt
cicd/ad7e2778079f	cicd	hard	cicd, pipeline, deployment, runners	Have you used Jenkins for CI or CD processes? Can you describe them?	Let's assume we have a web application built using Node.js, and we want to automate its build and deployment process using Jenkins. Here is how we can set up a simple CI/CD pipeline using Jenkins:\n\n1. Install Jenkins: We can install Jenkins on a dedicated server or on a cloud platform such as AWS or Google Cloud.\n2. Install necessary plugins: Depending on the specific requirements of the project, we may need to install plugins such as NodeJS, Git, Docker, and any other plugins required by the project.\n3.	projects/knowledge/interview/cicd/017-have-you-used-jenkins-for-ci-or-cd-processes-can-y.txt
cicd/b4fe4cfd211a	cicd	hard	cicd, pipeline, stages	How would you implement an option of a starting a build from a certain stage and not from the beginning?	To implement an option of starting a build from a certain stage and not from the beginning in a Jenkins pipeline, we can use the `when` directive along with a custom parameter to determine the starting stage. Here are the steps to implement this:\n\n1. Add a custom parameter to the pipeline. This parameter can be a simple string or a more complex data type like a map.\n    \n    ```tsx\n    parameters {\n        string(name: 'START_STAGE', defaultValue: '', description: 'The name of the stage to start the build from')\n    }\n    ```\n    \n2.	projects/knowledge/interview/cicd/029-how-would-you-implement-an-option-of-a-starting-a-.txt
cicd/b50880a474ad	cicd	easy	cicd, deployment, pipeline	"What is a ""canary release""?"	Rolling out a new version to a small subset of users first.\n\nRemember: canary = deploy to a small percentage of traffic first (1-5%), monitor, then gradually increase. Named after coal mine canaries that detect gas first.	projects/knowledge/interview/cicd/050-canary-release.txt
cicd/b97050053148	cicd	medium	cicd, pipeline, testing, stages	Can you describe an example of a CI (and/or CD) process starting the moment a developer submitted a change/PR to a repository?	There are many answers for such a question, as CI processes vary, depending on the technologies used and the type of the project to where the change was submitted.\nSuch processes can include one or more of the following stages:\n\n* Compile \n* Build\n* Install\n* Configure\n* Update\n* Test\n\nAn example of one possible answer:\n\nA developer submitted a pull request to a project. The PR (pull request) triggered two jobs (or one combined job).\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/003-can-you-describe-an-example-of-a-ci-andor-cd-proce.txt
cicd/b9e06d085d13	cicd	easy	cicd, deployment, pipeline	"What is a ""rolling deployment""?"	Gradually replacing old versions with new ones to avoid downtime.\n\nRemember: a good CI/CD pipeline is fast (<10 min), reliable (no flaky tests), and informative (clear failure messages). Slow pipelines kill developer productivity.\n\nGotcha: flaky tests erode trust in CI. Fix or quarantine them immediately. A pipeline that cries wolf is a pipeline that gets ignored.	projects/knowledge/interview/cicd/048-rolling-deployment.txt
cicd/ba9392bc4666	cicd	medium	cicd, pipeline, testing	How to secure Jenkins?	[Jenkins documentation](https://www.jenkins.io/doc/book/security/securing-jenkins/) provides some basic intro for securing your Jenkins server.\n\nRemember: a good CI/CD pipeline is fast (<10 min), reliable (no flaky tests), and informative (clear failure messages). Slow pipelines kill developer productivity.\n\nGotcha: flaky tests erode trust in CI. Fix or quarantine them immediately. A pipeline that cries wolf is a pipeline that gets ignored.	projects/knowledge/interview/cicd/021-how-to-secure-jenkins.txt
cicd/cbc80fb0b54f	cicd	hard	cicd, pipeline, testing	What CI/CD best practices are you familiar with? Or what do you consider as CI/CD best practice?	* Commit and test often.\n* Testing/Staging environment should be a clone of production environment.\n* Clean up your environments (e.g. your CI/CD pipelines may create a lot of resources. They should also take care of cleaning up everything they create)\n* The CI/CD pipelines should provide the same results when executed locally or remotely\n* Treat CI/CD as another application in your organization.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/006-what-cicd-best-practices-are-you-familiar-with-or-.txt
cicd/d2ee06ccd418	cicd	hard	cicd, deployment, artifacts	Do you have experience with developing a Jenkins plugin? Can you describe this experience?	Developing a Jenkins plugin requires knowledge of Java and familiarity with Jenkins API. The process typically involves setting up a development environment, creating a new plugin project, defining the plugin's extension points, and implementing the desired functionality using Java code. Once the plugin is developed, it can be packaged and deployed to Jenkins.\n\nThe Jenkins plugin ecosystem is extensive, and there are many resources available to assist with plugin development, including documentation, forums, and online communities.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/030-do-you-have-experience-with-developing-a-jenkins-p.txt
cicd/e178a0ea1ec9	cicd	hard	cicd, pipeline, runners	Explain the following:	"- Job is an automation definition = what and where to execute once the user clicks on ""build"" \n- Build is a running instance of a job. You can have one or more builds at any given point of time (unless limited by configuration)\n- A worker is the machine/instance on which the build is running. When a build starts, it ""acquires"" a worker out of a pool to run on it.\n- An executor is variable of the worker, defining how many builds can run on that worker in parallel. An executor value of 3 means, that 3 builds can run at any point on that executor (not necessarily of the same job. Any builds)"	projects/knowledge/interview/cicd/015-explain-the-following-job-build-plugin-node-or-wor.txt
cicd/ee1f195c4f6f	cicd	easy	cicd, pipeline, testing	What is MTTR (Mean Time To Recovery) and why does it matter for reliability?	Mean Time To Recovery, a metric for system reliability.\n\nRemember: a good CI/CD pipeline is fast (<10 min), reliable (no flaky tests), and informative (clear failure messages). Slow pipelines kill developer productivity.\n\nGotcha: flaky tests erode trust in CI. Fix or quarantine them immediately. A pipeline that cries wolf is a pipeline that gets ignored.	projects/knowledge/interview/cicd/052-mttr.txt
cicd/f19fe351f78c	cicd	medium	cicd, pipeline, testing	What is Jenkins and what role does it play in CI/CD pipelines?	An open-source automation server for CI/CD. Jenkins orchestrates build, test, and deploy pipelines via a web UI. It uses a master-agent architecture where the master schedules jobs and agents execute them.\n\nWho made it: Originally 'Hudson' by Kohsuke Kawaguchi at Sun Microsystems (2004). Forked to Jenkins in 2011 after Oracle acquired Sun.\n\nX vs Y: Jenkins (self-hosted, flexible, plugin-heavy) vs GitHub Actions (SaaS, YAML-native, tighter GitHub integration) vs GitLab CI (integrated with GitLab, YAML pipelines).\n\nRemember: typical pipeline stages: Source -> Build -> Test -> Deploy. Mnemonic: 'Source Builds Tests Deployed.'	projects/knowledge/interview/cicd/045-what-is-jenkins.txt
cicd/f71699fb6729	cicd	medium	cicd, deployment, pipeline	"What is ""blue-green deployment""?"	Running two identical environments and switching traffic between them. Blue is the current production. Green is the new version. Deploy to green, validate, then switch the load balancer/DNS to point at green. If green fails, switch back to blue instantly.\n\nRemember: blue-green = two identical environments. Deploy to green, test, switch traffic. Rollback = switch back to blue. Zero downtime.\n\nX vs Y: Blue-green (instant switch, 2x resources) vs canary (gradual rollout, less resources) vs rolling (in-place updates, no extra infra).\n\nRemember: blue-green = two identical environments. Deploy to green, test, switch traffic. Rollback = switch back to blue. Zero downtime.	projects/knowledge/interview/cicd/049-blue-green-deployment.txt
cicd/fdbb9897bd37	cicd	medium	cicd, pipeline, testing	If you are managing a dozen of jobs, you can probably use the Jenkins UI. But how do you manage the creation and deletion of hundreds of jobs every week/month?	Managing the creation and deletion of hundreds of jobs every week/month in Jenkins can be a daunting task if done manually through the UI. Here are some approaches to manage large numbers of jobs efficiently:\n\n1. Use job templates\n2. Use Job DSL\n3. Use Jenkins REST API\n4. Use a configuration management tool\n5. Use a Jenkins job management tool\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/026-if-you-are-managing-a-dozen-of-jobs-you-can-probab.txt
cicd/ffae789c6fc4	cicd	medium	cicd, runners, pipeline	Describe how do you add new nodes (agents) to Jenkins	You can describe the UI way to add new nodes but better to explain how to do in a way that scales like a script or using dynamic source for nodes like one of the existing clouds.\n\nRemember: shift left — run security scanning, linting, and testing as early as possible in the pipeline. The later you find a bug, the more expensive it is to fix.	projects/knowledge/interview/cicd/022-describe-how-do-you-add-new-nodes-agents-to-jenkin.txt

<!-- wiki:related:start -->
---

## Wiki Navigation

### Related Content

- [Adversarial Interview Gauntlet (30 sequences)](../../../../library/interview-scenarios/gauntlet/README.md) (Scenario, L2) — CI/CD
- [CI Pipeline Documentation](../../../../library/guides/ci-pipeline.md) (Reference, L1) — CI/CD
- [CI/CD Drills](../../../../library/drills/ci_drills.md) (Drill, L1) — CI/CD
- [CI/CD Pipelines & Patterns](../../../../library/topics/cicd/index.md) (Topic Pack, L1) — CI/CD
- Circleci Flashcards *(CLI)* (flashcard_deck, L1) — CI/CD
- [Dagger / CI as Code](../../../../library/topics/dagger/index.md) (Topic Pack, L2) — CI/CD
- [Deep Dive: CI/CD Pipeline Architecture](../../../../library/deep-dives/ci.cd.pipeline.architecture.md) (deep_dive, L2) — CI/CD
- [GitHub Actions](../../../../library/topics/github-actions/index.md) (Topic Pack, L1) — CI/CD
- [Interview: CI Vuln Scan Failed](../../../../library/interview-scenarios/06-ci-vuln-scan-failed.md) (Scenario, L2) — CI/CD
- Jenkins Flashcards *(CLI)* (flashcard_deck, L1) — CI/CD

<!-- wiki:related:end -->
