<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Kshitij</title>
    <description>The latest articles on Forem by Kshitij (@kshitij3d).</description>
    <link>https://forem.com/kshitij3d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2399431%2F62a26704-d1f5-4e1b-b32f-a715e56c4741.jpeg</url>
      <title>Forem: Kshitij</title>
      <link>https://forem.com/kshitij3d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kshitij3d"/>
    <language>en</language>
    <item>
      <title>My first DevOps assignment</title>
      <dc:creator>Kshitij</dc:creator>
      <pubDate>Tue, 10 Dec 2024 11:28:58 +0000</pubDate>
      <link>https://forem.com/kshitij3d/my-first-devops-assignment-295c</link>
      <guid>https://forem.com/kshitij3d/my-first-devops-assignment-295c</guid>
      <description>&lt;p&gt;🌟 Launch Announcement: boomksd.shop! 🌟&lt;/p&gt;

&lt;p&gt;I’m thrilled to announce the launch of my new website, boomksd.shop! Here’s a behind-the-scenes look at how I brought it to life using cutting-edge cloud technologies and CI/CD practices:&lt;/p&gt;

&lt;p&gt;The Journey&lt;/p&gt;

&lt;p&gt;🚀 Step 1: Building the Foundation&lt;br&gt;
       •  Spun up an Ubuntu 20.04 instance on AWS (t3.micro) with 10 GB of storage.&lt;br&gt;
    • Configured the essentials:&lt;br&gt;
    • Nginx for web server management.&lt;br&gt;
    • MySQL for database support.&lt;br&gt;
    • Node.js v20 and Ghost CLI to power the content platform.&lt;br&gt;
    • Allocated an Elastic IP and seamlessly mapped it to my domain with Route 53 for a reliable DNS setup.&lt;/p&gt;

&lt;p&gt;⚙️ Step 2: Deploying the Ghost CMS&lt;br&gt;
    • Set up the website in /var/www/ghost-site and fine-tuned permissions.&lt;br&gt;
    • Installed Ghost CMS and verified its readiness using ghost doctor.&lt;br&gt;
    • Customized the Ghost configuration to reflect my domain: boomksd.shop.&lt;/p&gt;

&lt;p&gt;🔧 Step 3: Automating with GitLab CI/CD&lt;br&gt;
    • Built an automated pipeline with GitLab CI/CD to streamline deployments:&lt;br&gt;
    • Build: Prepares the environment and installs dependencies.&lt;br&gt;
    • Download: Fetches the latest website content from the repository.&lt;br&gt;
    • Test: Runs checks to ensure a seamless experience before deployment.&lt;/p&gt;

&lt;p&gt;What Sets This Up Apart?&lt;br&gt;
    • Reliability: Hosted on AWS, ensuring uptime and scalability.&lt;br&gt;
    • Automation: CI/CD pipeline ensures faster, error-free updates.&lt;br&gt;
    • Customization: Fully tailored with Ghost CMS for sleek design and efficient content management.&lt;/p&gt;

&lt;p&gt;Next Steps&lt;/p&gt;

&lt;p&gt;🔒 Enhancing Security: SSL setup with Let’s Encrypt for secure HTTPS browsing.&lt;br&gt;
📈 Scaling for Growth: Optimizing performance for increased traffic.&lt;br&gt;
🎨 Content Updates: Regularly adding features, articles, and more!&lt;/p&gt;

&lt;p&gt;Visit Now&lt;/p&gt;

&lt;p&gt;👉 boomksd.shop&lt;/p&gt;

&lt;p&gt;Let me know your thoughts, feedback, or if you’d like help setting up something similar for your project.&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #DevOps #GitLabCI #GhostCMS #WebDevelopment #CloudInfrastructure #WebsiteLaunch
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>15 ways to use Jenkins for Continuous Integration (CI) with examples</title>
      <dc:creator>Kshitij</dc:creator>
      <pubDate>Sat, 23 Nov 2024 19:36:24 +0000</pubDate>
      <link>https://forem.com/kshitij3d/15-ways-to-use-jenkins-for-continuous-integration-ci-with-examples-305i</link>
      <guid>https://forem.com/kshitij3d/15-ways-to-use-jenkins-for-continuous-integration-ci-with-examples-305i</guid>
      <description>&lt;p&gt;1) Build Automation&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Automating the process of compiling code to produce software (e.g., creating .exe files for Windows or .jar files for Java).
• Jenkins automatically performs this every time you make changes to your code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Imagine you’re writing a Java program. Normally, you would run javac and java commands manually. Jenkins automates this by:
1.  Fetching your code from GitHub.
2.  Running a tool like Maven to compile it.
3.  Producing a ready-to-use software file.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Java Application Build&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Automatically compile and build a Java application whenever code is pushed.
• Setup:
1.  Install the Git plugin to pull the code.
2.  Use Maven or Gradle as a build tool.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Checkout') {
        steps {
            git branch: 'main', url: 'https://github.com/your-repo.git'
        }
    }
    stage('Build') {
        steps {
            sh 'mvn clean package'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Outcome: Produces a JAR/WAR file for deployment.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;2) Automated Testing&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Ensures your program works as intended by automatically running tests.
• These tests check if your program behaves correctly for different inputs.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Suppose your program calculates discounts:
• Input: price = 100, discount = 10%
• Expected Output: 90
• Jenkins runs a script to check if your program calculates this correctly every time you make changes.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Running Unit Tests with JUnit&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Run tests automatically after every build.
• Setup:
1.  Add test execution and result publishing to your pipeline.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Build') {
        steps {
            sh 'mvn clean install'
        }
    }
    stage('Test') {
        steps {
            sh 'mvn test'
            junit '**/target/surefire-reports/*.xml'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Outcome: Tests are run, and results are published in Jenkins.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;3) Code Quality Analysis&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Jenkins uses tools like SonarQube to check your code for mistakes, bad practices, or inefficiencies.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Imagine your code is full of unnecessary lines or errors. Jenkins will highlight:
• Unused variables.
• Functions that could be written better.
• This ensures you write clean, efficient code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: SonarQube Integration&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Perform static code analysis to ensure quality.
• Setup:
1.  Install the SonarQube Scanner plugin.
2.  Add a SonarQube analysis stage to your pipeline.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Code Analysis') {
        steps {
            withSonarQubeEnv('SonarQube') {
                sh 'mvn sonar:sonar'
            }
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Outcome: Reports code quality metrics in SonarQube.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;4) Artifact Management&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Stores files created after building your program (called artifacts) so they can be used later.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• After Jenkins creates a .jar file (Java app), it uploads it to a storage service like Nexus. This makes it easy for others to download and use your program.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Uploading to Nexus&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Store build artifacts for future use.
• Setup:
1.  Use the Nexus Artifact Uploader plugin.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Build') {
        steps {
            sh 'mvn clean package'
        }
    }
    stage('Upload Artifact') {
        steps {
            nexusArtifactUploader(
                nexusVersion: 'nexus3',
                nexusUrl: 'http://nexus.example.com',
                repository: 'maven-releases',
                credentialsId: 'nexus-credentials',
                artifacts: [[
                    artifactId: 'app',
                    file: 'target/app.jar',
                    type: 'jar'
                ]]
            )
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Outcome: Artifacts are stored in Nexus.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;5) Dockerized Pipelines&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Runs the Jenkins job inside a lightweight, isolated container (like a mini-computer) to ensure consistency.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• If Jenkins runs your Java program on Windows, but your teammate uses Linux, the program may behave differently. Using Docker ensures it runs the same everywhere.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Build in a Docker Container&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Isolate build environments.
• Setup: Use the Docker Pipeline plugin.
• Pipeline Example:

    •.      pipeline {
agent {
    docker {
        image 'maven:3.8.1-jdk-11'
    }
}
stages {
    stage('Build') {
        steps {
            sh 'mvn clean install'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Outcome: Builds run in Docker containers.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;6) Multi-Branch Pipelines&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Automatically creates separate pipelines for each Git branch. Each branch can have its own rules.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• You might have two branches: main (stable) and dev (work-in-progress). Jenkins ensures code in dev doesn’t break the stable code in main.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Branch-Specific Pipelines&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Automate pipelines for multiple branches.
• Setup: Use Multibranch Pipeline jobs.
• Pipeline Code: Same logic is applied per branch.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;7) Notification and Reporting&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Sends updates about your build (success or failure) to your team via email, Slack, etc.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• If the build fails, Jenkins can send you a message:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;“The build failed due to a missing file. Please fix it.”&lt;/p&gt;

&lt;p&gt;Scenario: Slack Notifications&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Notify the team of build results.
• Setup:
1.  Install the Slack Notification plugin.
2.  Configure Slack webhooks.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Build') {
        steps {
            sh 'mvn clean install'
        }
    }
}
post {
    success {
        slackSend(channel: '#dev', message: 'Build succeeded!')
    }
    failure {
        slackSend(channel: '#dev', message: 'Build failed!')
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Outcome: Teams are notified on Slack.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;8) Continuous Delivery (CD)&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Jenkins automatically deploys your application after building and testing it successfully.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Your program is uploaded to a Kubernetes cluster or server where users can access it instantly.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Kubernetes Deployment&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Deploy applications to Kubernetes after successful builds.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Deploy') {
        steps {
            sh 'kubectl apply -f deployment.yaml'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;9) Infrastructure as Code Validation&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Validates the scripts used to set up servers (e.g., Terraform files).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Before creating a cloud server, Jenkins checks if your configuration file is correct to prevent errors during server setup.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Terraform Validation&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Validate Terraform configurations.
• Pipeline Example:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;pipeline {&lt;br&gt;
    agent any&lt;br&gt;
    stages {&lt;br&gt;
        stage('Validate Terraform') {&lt;br&gt;
            steps {&lt;br&gt;
                sh 'terraform validate'&lt;br&gt;
            }&lt;br&gt;
        }&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;10) Database Migration Automation&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Updates your database (e.g., adding a new column) automatically when you update your application.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• If you add a new feature that needs an extra database column, Jenkins uses tools like Flyway to add the column without breaking the existing database.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Using Flyway&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Automate database schema updates.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Database Migration') {
        steps {
            sh 'flyway migrate'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;11) Blue/Green Deployment&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Deploys your new application version to a small group of users while the rest continue using the old version.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Imagine you’re updating a website. Only 10% of users see the new version. If it works fine, you roll it out to everyone.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: AWS Deployment&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Safely deploy without downtime.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Deploy to Blue') {
        steps {
            sh 'aws deploy ...'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;12) Security Scans&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Jenkins checks your application for security vulnerabilities using tools like OWASP ZAP.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Jenkins might scan your website and warn:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;“Your website allows users to enter malicious scripts. Fix this!”&lt;/p&gt;

&lt;p&gt;Scenario: OWASP ZAP Integration&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Check for vulnerabilities.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Security Scan') {
        steps {
            sh 'zap-cli start'
            sh 'zap-cli scan http://app'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;13) Cross-Browser Testing&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Tests your web app on different browsers (e.g., Chrome, Firefox) to ensure it works everywhere.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• If your website looks good on Chrome but breaks on Firefox, Jenkins catches this issue by running tests on all browsers.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Selenium Testing&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Test web apps across browsers.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Cross-Browser Tests') {
        steps {
            sh 'selenium-side-runner test.side'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;14) Cross-Platform Builds&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Builds your program for multiple operating systems (Windows, Mac, Linux) in one go.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• You’re creating a game. Jenkins creates .exe (Windows), .dmg (Mac), and .appimage (Linux) files simultaneously.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Compile for Linux, Windows, and Mac&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Build for multiple OS environments.
• Pipeline Example:

    •.      pipeline {
agent any
stages {
    stage('Build Linux') {
        steps {
            sh './build-linux.sh'
        }
    }
    stage('Build Windows') {
        steps {
            bat 'build-windows.bat'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;15) CI for Machine Learning&lt;/p&gt;

&lt;p&gt;What is it?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Automates tasks like validating datasets and training models for machine learning projects.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Beginner-Friendly Example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• If you’re building an AI model, Jenkins:
1.  Checks if the input data is valid.
2.  Automatically trains the model using this data.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Scenario: Data Validation and Model Training&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Objective: Automate ML pipelines.
• Pipeline Example:

    •    pipeline {
agent any
stages {
    stage('Data Validation') {
        steps {
            sh 'python validate_data.py'
        }
    }
    stage('Train Model') {
        steps {
            sh 'python train_model.py'
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}.   &lt;/p&gt;

&lt;p&gt;Summary for Beginners:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Think of Jenkins as your assistant.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;It automates repetitive tasks like building, testing, and deploying software, so you can focus on coding!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>opensource</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
