Continuous Integration with Jenkins Course

بواسطة: Treehouse

Overview

Jenkins is a continuous integration server. Integration tests take all the code and other components of your application and integrate it together, then test it to ensure it's working properly.

Jenkins can watch repos for version control software like Git or Subversion. When there's a new commit, Jenkins will check it out automatically. It will run your tests, and report the result. It can even be configured to automatically deploy your software to production if all the tests pass.

This course is going to show you all the basics of using Jenkins.

What you'll learn

  • Jenkins
  • Integration tests
  • Continuous integration

Syllabus

How Jenkins Works

Let's look at what Jenkins is, and how it can help you deliver bug-free software.

Chevron 8 steps
  • Introduction

    0:56

  • instruction

    What is Jenkins?

  • Basic Concepts

    1 question

  • instruction

    Prerequisites

  • instruction

    A Typical Workday for Jenkins

  • instruction

    Running Jenkins for the First Time

  • instruction

    Jenkins's First Job

  • Jenkins Jobs

    1 question

Pipelines

Learn how to create and use Jenkins pipelines.

Chevron 7 steps
  • instruction

    Your First Pipeline

  • instruction

    Running Shell Commands

  • Pipeline Basics

    1 question

  • instruction

    Version Control Integration

  • instruction

    Build Stages

  • instruction

    Multibranch Pipelines and Jenkinsfile

  • Pipelines

    4 questions

Practical Jenkins

Now that you understand the basics of creating Jenkins jobs, let's use them to make your life as a developer easier.

Chevron 6 steps
  • instruction

    Test Reports and the "post" Section

  • instruction

    Jenkins and Docker

  • instruction

    Continuous Delivery/Deployment

  • Practical Jenkins

    5 questions

  • instruction

    Jenkins Review

  • Review

    11 questions

Taught by

Jay McGavren

Continuous Integration with Jenkins Course
الذهاب الي الدورة

Continuous Integration with Jenkins Course

بواسطة: Treehouse

  • Treehouse
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • N/A
8.1.2PHP Version328msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (203ms)
    • Application (123ms)
    • 1 x Booting (62.05%)
      203.40ms
      1 x Application (37.67%)
      123.49ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed10.19ms
      • select * from `courses` where `slug_ar` = 'continuous-integration-with-jenkins-course' limit 1
        8.99ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. continuous-integration-with-jenkins-course
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-02-10 20:25:09' where `id` = 6005
        310μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-10 20:25:09
        • 1. 6005
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (119)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (60) and `providers`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 5996 limit 1
        230μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 5996
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        zevEm3Ly8vF4N6L422P2pIu2S44SVHI4InZstj5f
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/contin...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/continuous-integration-with-jenkins-course
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "18.224.67.63" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "18.224.67.63" ] "cf-ray" => array:1 [ 0 => "90fed3a84d53cdf3-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "18.224.67.63" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "18.224.67.63" "HTTP_CF_RAY" => "90fed3a84d53cdf3-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "27974" "REMOTE_ADDR" => "172.69.17.66" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/continuous-integration-with-jenkins-course" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1739219109.4155 "REQUEST_TIME" => 1739219109 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 10 Feb 2025 20:25:09 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImZGbjM1dGl2TG91eUZVcnpQZnZUQXc9PSIsInZhbHVlIjoiSlVxZXdZV3dKNGJLR2xhMG56cDdHOWxoN3BzMFpDVUlyNlJGUjJyNTh3L2tramhjek92RzJaWHdwUGlESlFFeGROWGovRFoybCtqTi95NHV1cXZ6dFpicVprYmdkZ05DeG9XRGhOSDVBa05VbFNSZFN4Q3Z1dE5TZEtOUTNJMmIiLCJtYWMiOiI0YzRmZjU5NWQ2ZjRjMTE3Yzc3ZjcwNzE5ODk2NDkzMTBhNzlkNTA4OTU3N2UwODkxM2YyNjliNDkzYzQzYzVmIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 22:25:09 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImZGbjM1dGl2TG91eUZVcnpQZnZUQXc9PSIsInZhbHVlIjoiSlVxZXdZV3dKNGJLR2xhMG56cDdHOWxoN3BzMFpDVUlyNlJGUjJyNTh3L2tramhjek92RzJaWHdwUGlESlFFeGROWGovR" 1 => "laravel_session=eyJpdiI6InpiQ0REQTRQZCtVdjVGTkNOQmJBVFE9PSIsInZhbHVlIjoibHB0N0p0Q2dia1lIbTJad0phc3lPczQwTzJXNjFzNkxodUc0QmY4VFFUdXptUnJoaGlSVy9FV0JIZ29zS0pTTHd0M2w1ZHphZFVxOWQ2NkRuWERJVzU1bUwraVlQUmY5UExpQXIzY3paV1VjUzBLd0thdk5selV5MWluUDZYdXgiLCJtYWMiOiJkMTRlYWIzMDJmZTE0MTZhOTdkODFiNmZiZWY3Y2FiZTg4ODYxYTZjMTIzYTMyZWFjNDY1NGMxYjU5ZTMzYmIwIiwidGFnIjoiIn0%3D; expires=Mon, 10 Feb 2025 22:25:09 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InpiQ0REQTRQZCtVdjVGTkNOQmJBVFE9PSIsInZhbHVlIjoibHB0N0p0Q2dia1lIbTJad0phc3lPczQwTzJXNjFzNkxodUc0QmY4VFFUdXptUnJoaGlSVy9FV0JIZ29zS0pTTHd0" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImZGbjM1dGl2TG91eUZVcnpQZnZUQXc9PSIsInZhbHVlIjoiSlVxZXdZV3dKNGJLR2xhMG56cDdHOWxoN3BzMFpDVUlyNlJGUjJyNTh3L2tramhjek92RzJaWHdwUGlESlFFeGROWGovRFoybCtqTi95NHV1cXZ6dFpicVprYmdkZ05DeG9XRGhOSDVBa05VbFNSZFN4Q3Z1dE5TZEtOUTNJMmIiLCJtYWMiOiI0YzRmZjU5NWQ2ZjRjMTE3Yzc3ZjcwNzE5ODk2NDkzMTBhNzlkNTA4OTU3N2UwODkxM2YyNjliNDkzYzQzYzVmIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 22:25:09 GMT; path=/XSRF-TOKEN=eyJpdiI6ImZGbjM1dGl2TG91eUZVcnpQZnZUQXc9PSIsInZhbHVlIjoiSlVxZXdZV3dKNGJLR2xhMG56cDdHOWxoN3BzMFpDVUlyNlJGUjJyNTh3L2tramhjek92RzJaWHdwUGlESlFFeGROWGovR" 1 => "laravel_session=eyJpdiI6InpiQ0REQTRQZCtVdjVGTkNOQmJBVFE9PSIsInZhbHVlIjoibHB0N0p0Q2dia1lIbTJad0phc3lPczQwTzJXNjFzNkxodUc0QmY4VFFUdXptUnJoaGlSVy9FV0JIZ29zS0pTTHd0M2w1ZHphZFVxOWQ2NkRuWERJVzU1bUwraVlQUmY5UExpQXIzY3paV1VjUzBLd0thdk5selV5MWluUDZYdXgiLCJtYWMiOiJkMTRlYWIzMDJmZTE0MTZhOTdkODFiNmZiZWY3Y2FiZTg4ODYxYTZjMTIzYTMyZWFjNDY1NGMxYjU5ZTMzYmIwIiwidGFnIjoiIn0%3D; expires=Mon, 10-Feb-2025 22:25:09 GMT; path=/; httponlylaravel_session=eyJpdiI6InpiQ0REQTRQZCtVdjVGTkNOQmJBVFE9PSIsInZhbHVlIjoibHB0N0p0Q2dia1lIbTJad0phc3lPczQwTzJXNjFzNkxodUc0QmY4VFFUdXptUnJoaGlSVy9FV0JIZ29zS0pTTHd0" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "zevEm3Ly8vF4N6L422P2pIu2S44SVHI4InZstj5f" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/continuous-integration-with-jenkins-course" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]