Deployment Pipelines using GitHub Actions

بواسطة: A Cloud Guru

Overview

GitHub Actions makes it easy to automate the developer workflow. This course shows examples and use cases for building, testing, and deploying your code from GitHub.We cover the two different types of actions, JavaScript and Container, which provide the foundation for building your workflow. Finally, we deploy a sample application to Azure, utilizing GitHub secrets, and the deployment workflow.

Syllabus

  • Introduction
  • Building Actions
  • Deploy Code to Production
  • Conclusion

Taught by

Chad Crowell

Deployment Pipelines using GitHub Actions
الذهاب الي الدورة

Deployment Pipelines using GitHub Actions

بواسطة: A Cloud Guru

  • A Cloud Guru
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • N/A
8.1.2PHP Version888msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (555ms)
    • Application (331ms)
    • 1 x Booting (62.45%)
      554.80ms
      1 x Application (37.26%)
      331.04ms
      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 executed12.68ms
      • select * from `courses` where `slug_ar` = 'deployment-pipelines-using-github-actions' limit 1
        11.11ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. deployment-pipelines-using-github-actions
        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-07-25 09:35:16' where `id` = 2196
        540μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-25 09:35:16
        • 1. 2196
        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 (106)
        240μ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)
        190μ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 (45) and `providers`.`deleted_at` is null
        230μ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` = 2187 limit 1
        370μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2187
        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
        7smwAuOTlK8Vgo3YqL9QlYwasQJrWNfruet62iCt
        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/deploy...
        _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/deployment-pipelines-using-github-actions
        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 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.214" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.214" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "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" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "964aaa875967ab84-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.214" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.214" "HTTP_SEC_FETCH_SITE" => "none" "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_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "964aaa875967ab84-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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" => "25582" "REMOTE_ADDR" => "172.70.80.188" "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/deployment-pipelines-using-github-actions" "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" => 1753436115.3459 "REQUEST_TIME" => 1753436115 ]
        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 => "Fri, 25 Jul 2025 09:35:16 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkpNRmI0bm84bFI0YTYrU2lRanp0K2c9PSIsInZhbHVlIjoiS3pqTHd0ZUhZRFpTTmM3WHhJN0dGNjg5T0lSaEJ4c3d4b2hHS2o4WlpINTJ4RW5FN015OEpRdVlzV3hibWxxeHJGZlpJaHZML2VPM0xZQmR1SzVSYW82V0taMTNpOGczS2Ira00zTWlZbWUrb3h2VGxvUDV0UnBtRVFOSnhZbzUiLCJtYWMiOiIxOTgyN2YxNzMyYWVmYTE3NDQ2OWUwZDdkOWU4N2Q4ZTYwMGJlZjM5ZjdlZGU5MDE1OGY5MDAzMjM1M2NkNWIxIiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 11:35:16 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IkpNRmI0bm84bFI0YTYrU2lRanp0K2c9PSIsInZhbHVlIjoiS3pqTHd0ZUhZRFpTTmM3WHhJN0dGNjg5T0lSaEJ4c3d4b2hHS2o4WlpINTJ4RW5FN015OEpRdVlzV3hibWxxeHJGZlpJa" 1 => "laravel_session=eyJpdiI6IlNLK0ZqMVdCRXdsU0daUC9BRmFoQWc9PSIsInZhbHVlIjoiWUpZSHIrcUI2YXI1N0dEQ2NwL01odnZuNEhKUDZGbDEvb1hSdlFveGlpQnNIcTR1R3F0cFE4eEdWVEFxNSsrRSt5M3NXQkNzYlFnSytuU0Q5QytEdncyT21FeW83a0FoN3ZmbmFMd1BQQk14VUQ3Yy9FVUZtMWZVYmRTNnZXNUkiLCJtYWMiOiI1MWRkMjZmMDQ3NWFhMDY2YmNmODQ2MmUzYjYyMDk0NzM5N2FiMDlkYjM2NjcyZDZmNTVhMTIxODNmZGI2MzA0IiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 11:35:16 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlNLK0ZqMVdCRXdsU0daUC9BRmFoQWc9PSIsInZhbHVlIjoiWUpZSHIrcUI2YXI1N0dEQ2NwL01odnZuNEhKUDZGbDEvb1hSdlFveGlpQnNIcTR1R3F0cFE4eEdWVEFxNSsrRSt5" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkpNRmI0bm84bFI0YTYrU2lRanp0K2c9PSIsInZhbHVlIjoiS3pqTHd0ZUhZRFpTTmM3WHhJN0dGNjg5T0lSaEJ4c3d4b2hHS2o4WlpINTJ4RW5FN015OEpRdVlzV3hibWxxeHJGZlpJaHZML2VPM0xZQmR1SzVSYW82V0taMTNpOGczS2Ira00zTWlZbWUrb3h2VGxvUDV0UnBtRVFOSnhZbzUiLCJtYWMiOiIxOTgyN2YxNzMyYWVmYTE3NDQ2OWUwZDdkOWU4N2Q4ZTYwMGJlZjM5ZjdlZGU5MDE1OGY5MDAzMjM1M2NkNWIxIiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 11:35:16 GMT; path=/XSRF-TOKEN=eyJpdiI6IkpNRmI0bm84bFI0YTYrU2lRanp0K2c9PSIsInZhbHVlIjoiS3pqTHd0ZUhZRFpTTmM3WHhJN0dGNjg5T0lSaEJ4c3d4b2hHS2o4WlpINTJ4RW5FN015OEpRdVlzV3hibWxxeHJGZlpJa" 1 => "laravel_session=eyJpdiI6IlNLK0ZqMVdCRXdsU0daUC9BRmFoQWc9PSIsInZhbHVlIjoiWUpZSHIrcUI2YXI1N0dEQ2NwL01odnZuNEhKUDZGbDEvb1hSdlFveGlpQnNIcTR1R3F0cFE4eEdWVEFxNSsrRSt5M3NXQkNzYlFnSytuU0Q5QytEdncyT21FeW83a0FoN3ZmbmFMd1BQQk14VUQ3Yy9FVUZtMWZVYmRTNnZXNUkiLCJtYWMiOiI1MWRkMjZmMDQ3NWFhMDY2YmNmODQ2MmUzYjYyMDk0NzM5N2FiMDlkYjM2NjcyZDZmNTVhMTIxODNmZGI2MzA0IiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 11:35:16 GMT; path=/; httponlylaravel_session=eyJpdiI6IlNLK0ZqMVdCRXdsU0daUC9BRmFoQWc9PSIsInZhbHVlIjoiWUpZSHIrcUI2YXI1N0dEQ2NwL01odnZuNEhKUDZGbDEvb1hSdlFveGlpQnNIcTR1R3F0cFE4eEdWVEFxNSsrRSt5" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "7smwAuOTlK8Vgo3YqL9QlYwasQJrWNfruet62iCt" "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/deployment-pipelines-using-github-actions" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]