Bird
Raised Fist0
Jenkinsdevops~5 mins

GitLab CI comparison in Jenkins - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is GitLab CI?
GitLab CI is a tool built into GitLab that helps automate software testing and deployment by running jobs defined in a file called .gitlab-ci.yml.
Click to reveal answer
beginner
How does Jenkins differ from GitLab CI in setup?
Jenkins requires separate installation and setup on a server, while GitLab CI is integrated directly into GitLab and works out of the box with GitLab repositories.
Click to reveal answer
beginner
What file defines the pipeline in GitLab CI?
The pipeline is defined in a file named .gitlab-ci.yml located in the root of the project repository.
Click to reveal answer
intermediate
Which tool provides a web interface to visualize pipelines and jobs?
Both Jenkins and GitLab CI provide web interfaces, but GitLab CI's interface is integrated into the GitLab platform, showing pipelines alongside code and issues.
Click to reveal answer
beginner
What is a key advantage of GitLab CI over Jenkins for beginners?
GitLab CI is easier to start with because it requires no separate installation and integrates tightly with GitLab repositories, simplifying pipeline setup.
Click to reveal answer
Which file is used to configure GitLab CI pipelines?
Apipeline.json
BJenkinsfile
C.gitlab-ci.yml
Dconfig.xml
What is a main difference between Jenkins and GitLab CI?
AJenkins is a standalone tool; GitLab CI is integrated into GitLab
BGitLab CI requires separate installation; Jenkins does not
CJenkins only works with GitLab repositories
DGitLab CI uses Jenkinsfile for configuration
Which tool provides a pipeline view inside the same interface as code and issues?
AJenkins
BGitLab CI
CTravis CI
DCircleCI
Which tool requires you to manage your own server or cloud instance?
AJenkins
BGitLab CI
CGitHub Actions
DBitbucket Pipelines
Which file is used to configure Jenkins pipelines?
Apom.xml
B.gitlab-ci.yml
Cbuild.gradle
DJenkinsfile
Explain the main differences between GitLab CI and Jenkins in terms of setup and integration.
Think about how each tool connects to your code repository and how you start using them.
You got /4 concepts.
    Describe the advantages of using GitLab CI for a beginner starting with continuous integration.
    Consider ease of use and how quickly you can see results.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which statement best describes the main difference between Jenkins and GitLab CI?
      easy
      A. Jenkins cannot automate building and testing.
      B. GitLab CI has more plugins than Jenkins.
      C. GitLab CI is easier to start with if you already use GitLab for your code.
      D. Jenkins is only for deployment, not for testing.

      Solution

      1. Step 1: Understand GitLab CI's integration

        GitLab CI is built into GitLab, making it simpler to start if your code is hosted there.
      2. Step 2: Compare Jenkins capabilities

        Jenkins offers more flexibility and plugins but requires more setup.
      3. Final Answer:

        GitLab CI is easier to start with if you already use GitLab for your code. -> Option C
      4. Quick Check:

        GitLab CI simpler start = B [OK]
      Hint: GitLab CI is simpler if your code is on GitLab [OK]
      Common Mistakes:
      • Thinking Jenkins cannot automate testing
      • Assuming GitLab CI has more plugins
      • Believing Jenkins is only for deployment
      2. Which of the following is the correct way to define a simple Jenkins pipeline step that echoes 'Hello World'?
      easy
      A. pipeline { stages { stage('Example') { steps { echo 'Hello World' } } } }
      B. pipeline { steps { stage('Example') { echo 'Hello World' } } }
      C. pipeline { stage('Example') { steps { print('Hello World') } } }
      D. pipeline { stages { step('Example') { echo 'Hello World' } } }

      Solution

      1. Step 1: Recall Jenkins pipeline syntax

        A Jenkins pipeline requires 'stages' containing 'stage' blocks, each with 'steps'. The echo command is inside steps.
      2. Step 2: Identify correct syntax

        pipeline { stages { stage('Example') { steps { echo 'Hello World' } } } } correctly nests stages, stage, steps, and uses echo properly.
      3. Final Answer:

        pipeline { stages { stage('Example') { steps { echo 'Hello World' } } } } -> Option A
      4. Quick Check:

        Correct Jenkins pipeline syntax = A [OK]
      Hint: Remember stages > stage > steps > commands in Jenkins pipeline [OK]
      Common Mistakes:
      • Placing steps outside stage
      • Using print instead of echo
      • Misnaming stage as step
      3. Given this Jenkins pipeline snippet, what will be the output in the console?
      pipeline {
        agent any
        stages {
          stage('Build') {
            steps {
              echo 'Building...'
            }
          }
          stage('Test') {
            steps {
              echo 'Testing...'
            }
          }
        }
      }
      medium
      A. Build stage skipped, only Testing runs
      B. Building...\nTesting...
      C. Testing...\nBuilding...
      D. Syntax error, pipeline fails

      Solution

      1. Step 1: Analyze pipeline stages order

        The pipeline runs stages in order: first 'Build', then 'Test'. Each stage echoes its message.
      2. Step 2: Determine console output

        The console will show 'Building...' first, then 'Testing...'.
      3. Final Answer:

        Building...\nTesting... -> Option B
      4. Quick Check:

        Stages run sequentially = C [OK]
      Hint: Jenkins stages run in order, echo outputs in sequence [OK]
      Common Mistakes:
      • Assuming stages run in parallel by default
      • Mixing order of outputs
      • Thinking pipeline syntax is invalid
      4. You have this Jenkins pipeline snippet:
      pipeline {
        agent any
        stages {
          stage('Build') {
            steps {
              echo 'Building...'
            }
          }
          stage('Test') {
            step {
              echo 'Testing...'
            }
          }
        }
      }
      What is the problem with this pipeline?
      medium
      A. The 'Test' stage uses 'step' instead of 'steps', causing a syntax error.
      B. The 'Build' stage is missing an agent.
      C. The echo command is invalid in Jenkins pipelines.
      D. Stages must be defined outside the pipeline block.

      Solution

      1. Step 1: Check stage syntax

        Each stage must have a 'steps' block, not 'step'. The 'Test' stage incorrectly uses 'step'.
      2. Step 2: Understand Jenkins syntax rules

        This causes a syntax error because Jenkins expects 'steps' to group commands.
      3. Final Answer:

        The 'Test' stage uses 'step' instead of 'steps', causing a syntax error. -> Option A
      4. Quick Check:

        Use 'steps' block in stages = A [OK]
      Hint: Stages require 'steps' block, not 'step' [OK]
      Common Mistakes:
      • Confusing 'step' and 'steps'
      • Thinking echo is invalid
      • Misplacing stages outside pipeline
      5. You want to migrate a simple GitLab CI pipeline to Jenkins. The GitLab CI YAML is:
      stages:
        - build
        - test
      
      build_job:
        stage: build
        script:
          - echo "Building..."
      
      test_job:
        stage: test
        script:
          - echo "Testing..."
      Which Jenkins pipeline best replicates this behavior?
      hard
      A. pipeline { agent any stages { stage('build') { steps { print('Building...') } } stage('test') { steps { print('Testing...') } } } }
      B. pipeline { agent any steps { echo 'Building...' echo 'Testing...' } }
      C. pipeline { agent any stages { stage('build') { step { echo 'Building...' } } stage('test') { step { echo 'Testing...' } } } }
      D. pipeline { agent any stages { stage('build') { steps { echo 'Building...' } } stage('test') { steps { echo 'Testing...' } } } }

      Solution

      1. Step 1: Map GitLab stages to Jenkins stages

        GitLab stages 'build' and 'test' correspond to Jenkins stages named 'build' and 'test'.
      2. Step 2: Use correct Jenkins syntax

        Each stage must have a 'steps' block with echo commands to replicate the script commands.
      3. Final Answer:

        Jenkins pipeline with stages 'build' and 'test' each having steps with echo commands. -> Option D
      4. Quick Check:

        Match GitLab stages with Jenkins stages and steps = D [OK]
      Hint: Translate GitLab stages to Jenkins stages with steps and echo [OK]
      Common Mistakes:
      • Using 'step' instead of 'steps'
      • Using print instead of echo
      • Putting all commands in one steps block without stages
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard