{"id":39540,"date":"2023-09-10T13:58:57","date_gmt":"2023-09-10T13:58:57","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=39540"},"modified":"2023-09-10T13:58:59","modified_gmt":"2023-09-10T13:58:59","slug":"jenkins-tutorials-preparation-of-jenkins-job-setup-checklist","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/jenkins-tutorials-preparation-of-jenkins-job-setup-checklist\/","title":{"rendered":"Jenkins Tutorials: Preparation of Jenkins Job Setup Checklist"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Question#1 &#8211; What is your programming Language<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Version of your Project?<\/li>\n\n\n\n<li>Make sure the language is configued in your Build Node Server.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Question#2 &#8211; Where is the source code for project?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Branch Name,<\/li>\n\n\n\n<li>Access of your project?<\/li>\n\n\n\n<li>SCM tool is installed in Build Node Server<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Question#3 &#8211; How Frequently you want this JOB to be triggered?<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Manual Build Trigger<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Build can be triggered manually by users through the Jenkins web interface.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Scheduled Build Trigger<\/strong>:\n<ul class=\"wp-block-list\">\n<li>You can schedule builds at specific times or on a recurring basis using the built-in &#8220;Build periodically&#8221; or &#8220;Build periodically with parameters&#8221; triggers in Jenkins.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>SCM Polling<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins can monitor your version control system (e.g., Git, SVN) for changes and trigger a build automatically when new commits are detected.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Webhooks<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Integrate Jenkins with your version control system and configure webhooks to trigger builds whenever there is a push or other relevant events.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>GitHub Hooks<\/strong>:\n<ul class=\"wp-block-list\">\n<li>For GitHub repositories, Jenkins can be configured to receive GitHub Webhooks, triggering builds on push events, pull requests, or other GitHub events.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Email Notification Trigger<\/strong>:\n<ul class=\"wp-block-list\">\n<li>You can configure Jenkins to trigger builds when specific email notifications are received. This is useful for integrating Jenkins with email-based systems.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>API Trigger<\/strong>:\n<ul class=\"wp-block-list\">\n<li>You can trigger builds programmatically using Jenkins&#8217; REST API. This allows external applications to initiate builds when certain conditions are met.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Upstream\/Downstream Projects<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins allows you to set up relationships between jobs, where one job triggers another when it completes. This is useful for defining complex build pipelines.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Parameterized Builds<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins supports parameterized builds, enabling you to pass parameters to jobs when triggering them. This is useful for customizing builds for different scenarios.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>GitHub Pull Request (PR) Builds<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins can be set up to automatically trigger builds when new pull requests are opened, updated, or merged on GitHub.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>External Tools and Plugins<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins has a vast ecosystem of plugins that can provide additional triggers. For example, plugins for various version control systems, chat tools, and issue trackers often offer custom triggers.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Other Event-Based Triggers<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Depending on your needs, you can explore other event-based triggers provided by Jenkins plugins. These may include triggers for specific systems or integrations.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Command-Line Trigger<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins can be triggered through the command line using tools like <code>curl<\/code> or scripts. This is useful for automation or integration with other systems.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Polling Specific URLs<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Jenkins can periodically poll specific URLs, and if the URL returns a specific response (e.g., success status), it can trigger a build.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>External Build Triggers<\/strong>:\n<ul class=\"wp-block-list\">\n<li>External systems or tools, such as CI\/CD orchestration tools, can trigger Jenkins builds via API calls or integration mechanisms.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Question#4 &#8211; What is your Builders?<\/h2>\n\n\n\n<p>In Jenkins, builders are the build steps or tasks that execute within a job to build, compile, test, and package your code. Jenkins provides a variety of builders, and you can also use plugins to extend the available builder options. Here is a list of commonly used builders in Jenkins:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is it installed in Node Server?<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Execute Shell<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder allows you to execute shell commands or scripts on Unix-based systems as part of your build process.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Execute Windows batch command<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Similar to the Execute Shell builder but for Windows-based systems. It allows you to run batch commands or scripts.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ant<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder is used to build projects using Apache Ant, a Java-based build tool. It&#8217;s commonly used for Java projects.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Maven<\/strong>:\n<ul class=\"wp-block-list\">\n<li>The Maven builder is used to build projects using Apache Maven, a widely-used build and dependency management tool primarily for Java projects.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Gradle<\/strong>:\n<ul class=\"wp-block-list\">\n<li>For projects that use Gradle as their build tool, this builder allows you to execute Gradle build tasks.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Invoke Gradle script<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Similar to the Gradle builder but allows you to invoke custom Gradle scripts within your Jenkins job.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Batch File<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder executes a Windows batch script within your Jenkins job.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Python<\/strong>:\n<ul class=\"wp-block-list\">\n<li>The Python builder allows you to run Python scripts as part of your build process.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NodeJS<\/strong>:\n<ul class=\"wp-block-list\">\n<li>For JavaScript-based projects, you can use the NodeJS builder to execute Node.js scripts.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Invoke top-level Maven targets<\/strong>:\n<ul class=\"wp-block-list\">\n<li>If you&#8217;re using Maven, this builder lets you invoke specific Maven targets within your Jenkins job.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AWS CodeBuild<\/strong>:\n<ul class=\"wp-block-list\">\n<li>For AWS CodeBuild integration, this builder allows you to specify CodeBuild projects to run as part of your Jenkins job.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Docker Build and Publish<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder is used to build and publish Docker containers. It&#8217;s useful for containerized applications.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Custom Script<\/strong>:\n<ul class=\"wp-block-list\">\n<li>You can use this builder to run a custom script of your choice, allowing for flexibility in your build process.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Jenkins Build Step<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder lets you trigger another Jenkins job as a build step within your current job, creating build pipelines.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Git Publisher<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder publishes changes to a Git repository, which can be useful for pushing build artifacts or updating version information.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Pipeline Script<\/strong>:\n<ul class=\"wp-block-list\">\n<li>If you&#8217;re using Jenkins Pipelines, you can define your entire build process within a Pipeline script.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Conditional Build Step<\/strong>:\n<ul class=\"wp-block-list\">\n<li>This builder allows you to add conditional logic to your build steps, executing certain steps based on specified conditions.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Jenkinsfile<\/strong>:\n<ul class=\"wp-block-list\">\n<li>When using Jenkins Declarative or Scripted Pipelines, you can define the entire build process within a Jenkinsfile as a builder.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Question# 5 &#8211; Whom you want to deliver Feedback of Job<\/h2>\n\n\n\n<p>here are a few different options for feedback and status in Jenkins jobs. Here are a few of the most common ones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Build status:<\/strong>&nbsp;This is the most basic type of feedback. It indicates whether the build was successful or not.<\/li>\n\n\n\n<li><strong>Build logs:<\/strong>&nbsp;This provides more detailed information about the build, such as the commands that were executed and the output of those commands.<\/li>\n\n\n\n<li><strong>Test results:<\/strong>&nbsp;This provides information about the results of unit tests and other types of tests that were run as part of the build.<\/li>\n\n\n\n<li><strong>Static analysis results:<\/strong>&nbsp;This provides information about the results of static analysis tools, such as linters and code scanners.<\/li>\n\n\n\n<li><strong>Deployment status:<\/strong>&nbsp;This indicates whether the build was successfully deployed to production.<\/li>\n\n\n\n<li><strong>Chat notifications:<\/strong>&nbsp;This allows you to receive notifications about the build status in a chat application, such as Slack or Discord.<\/li>\n\n\n\n<li><strong>Email notifications:<\/strong>&nbsp;This allows you to receive notifications about the build status in an email.<\/li>\n\n\n\n<li><strong>Dashboard widgets:<\/strong>&nbsp;This allows you to display build status and other information on a dashboard.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Question#1 &#8211; What is your programming Language Question#2 &#8211; Where is the source code for project? Question#3 &#8211; How Frequently you want this JOB to be triggered? Question#4 &#8211; What&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-39540","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/39540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=39540"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/39540\/revisions"}],"predecessor-version":[{"id":39541,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/39540\/revisions\/39541"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=39540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=39540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=39540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}