<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – Jenkins</title>
    <link>https://www.devkuma.com/en/tags/jenkins/</link>
    <image>
      <url>https://www.devkuma.com/en/tags/jenkins/logo/180x180.jpg</url>
      <title>Jenkins</title>
      <link>https://www.devkuma.com/en/tags/jenkins/</link>
    </image>
    <description>Recent content in Jenkins on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>kc@example.com (kc kim)</managingEditor>
    <webMaster>kc@example.com (kc kim)</webMaster>
    <copyright>The devkuma</copyright>
    
	  <atom:link href="https://www.devkuma.com/en/tags/jenkins/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Jenkins</title>
      <link>https://www.devkuma.com/en/docs/jenkins/</link>
      <pubDate>Mon, 24 Oct 2022 18:09:00 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/jenkins/</guid>
      <description>
        
        
        &lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;When adding features to a server application, developers complete development and testing on their local computers. If there are no problems, the modified content must be reflected on the server so users can use it. Reflecting changes on the server is called deployment, and the preparation process for deployment is called a build.&lt;/p&gt;
&lt;h3 id=&#34;what-is-a-build&#34;&gt;What is a build?&lt;/h3&gt;
&lt;p&gt;A build means preparing software so it can be uploaded to a server, and deployment means uploading it to the server so users can use it. For example, when deploying a Spring Boot application to Kubernetes, you first build a &lt;code&gt;.jar&lt;/code&gt; or &lt;code&gt;.war&lt;/code&gt; with Maven or Gradle, then build a Docker image. Kubernetes then reflects the changed image version in a &lt;code&gt;.yml&lt;/code&gt; file.&lt;/p&gt;
&lt;h3 id=&#34;why-builds-should-be-automated&#34;&gt;Why builds should be automated&lt;/h3&gt;
&lt;p&gt;Builds may happen once a day or not at all on some days, but over a week or month they happen quite often. Over a year, this becomes a significant amount of time.&lt;/p&gt;
&lt;p&gt;For example, in the past, Java builds were run manually with the &lt;code&gt;javac&lt;/code&gt; command, but now an IDE can run &lt;code&gt;javac&lt;/code&gt; and then &lt;code&gt;java&lt;/code&gt; when &lt;code&gt;main()&lt;/code&gt; is executed. Repetitive processes like this should be automated with a button or shortcut.&lt;/p&gt;
&lt;p&gt;This is because the work consumes concentration and tension. Builds also take time, at least 30 seconds or more, and the accumulated time spent waiting for builds becomes very large.&lt;/p&gt;
&lt;p&gt;To minimize developer work time, repetitive tasks should be automated as much as possible.&lt;/p&gt;
&lt;h2 id=&#34;jenkins-overview&#34;&gt;Jenkins overview&lt;/h2&gt;
&lt;p&gt;As explained above, Jenkins is a tool that automates the troublesome build process for development source code.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;jenkins-logo.png&#34; alt=&#34;Jenkins&#34;&gt;&lt;br&gt;
&lt;a href=&#34;https://www.jenkins.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenkins official site&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Jenkins is open source server software implemented in Java for automating development work, and it mainly helps realize the following two technical goals.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Continuous Integration (CI)
&lt;ul&gt;
&lt;li&gt;Automation of simple tasks across the whole software development process.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Continuous Delivery (CD)
&lt;ul&gt;
&lt;li&gt;Automatically deploying software completed through continuous integration to test and production environments.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Jenkins itself is provided as a WAR file and can be started by deploying it to a servlet container such as Apache Tomcat. The WAR file is also built in an executable format that includes servlet container functionality, so it can also be run standalone with &lt;code&gt;java -jar jenkins.war&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Jenkins supports SCM tools such as AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and it can run Apache Ant and Apache Maven based projects as well as shell scripts and Windows batch commands.&lt;/p&gt;
&lt;p&gt;Builds can run through various triggers. For example, they can be scheduled through a cron-like mechanism, started by commits to a version control system, or started by requests sent to a specific build URL. A build can also trigger another build after a queued build completes.&lt;/p&gt;
&lt;p&gt;Jenkins was originally developed at Sun Microsystems under the name Hudson. After Oracle acquired Sun and trademarked the Hudson name, the project was renamed Jenkins and continued as an independent open source project. One of Jenkins&amp;rsquo; greatest technical advantages is extensibility. The community also welcomes improvement requests, so there are currently more than 1,200 plugins, and hundreds of developers create new plugins every month for the official update center.&lt;/p&gt;
&lt;p&gt;Version 2 was released in 2016, integrating pipelines for continuous delivery by default. Jenkins development is active, and releases are made almost every week.&lt;/p&gt;
&lt;h2 id=&#34;main-features-of-jenkins&#34;&gt;Main features of Jenkins&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Continuous Integration (CI) and Continuous Delivery (CD)
&lt;ul&gt;
&lt;li&gt;Because it is an extensible automation server, it can be used as a simple CI server or as a hub for continuous delivery for any project.&lt;/li&gt;
&lt;li&gt;Jenkins is an open source continuous integration server tool developed in Java.&lt;/li&gt;
&lt;li&gt;It can automate the series of software build, verification, and server installation steps.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Easy installation
&lt;ul&gt;
&lt;li&gt;Jenkins is a self-contained Java-based program and can run immediately with packages for Windows, Mac OS X, and other Unix-based operating systems.&lt;/li&gt;
&lt;li&gt;Docker images are also distributed, so it can be run directly in Docker.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Easy configuration
&lt;ul&gt;
&lt;li&gt;It can be configured easily through a web interface with immediate error checks and built-in help.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Many plugins
&lt;ul&gt;
&lt;li&gt;Build environments, build-time options, development environments, and programming languages vary widely.&lt;/li&gt;
&lt;li&gt;Jenkins provides many plugins to cover these differences.&lt;/li&gt;
&lt;li&gt;More than 1,800 plugins in the update center can integrate many features into continuous integration and continuous delivery.&lt;/li&gt;
&lt;li&gt;Jobs can be managed by unit, and functions can be extended with plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extensible
&lt;ul&gt;
&lt;li&gt;Through its plugin architecture, Jenkins offers nearly unlimited possibilities for what it can do.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dashboard
&lt;ul&gt;
&lt;li&gt;Deployment job status can be monitored.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Deployment script execution
&lt;ul&gt;
&lt;li&gt;Deployment scripts can also be run on a developer&amp;rsquo;s local machine, and Jenkins can schedule them while running.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Distributed
&lt;ul&gt;
&lt;li&gt;Jobs can be distributed across multiple computers so builds, tests, and deployments can run quickly on many platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;jenkins-and-hudson&#34;&gt;Jenkins and Hudson&lt;/h2&gt;
&lt;p&gt;The Jenkins project was originally named Hudson, but it was renamed Jenkins because of a trademark dispute with Oracle.&lt;/p&gt;
&lt;p&gt;In 2004, Kohsuke Kawaguchi was a Java developer at Sun Microsystems. Tired of breaking builds during development, he wanted a way to know whether code worked before committing it to a repository. He developed an automation server in Java to make this possible and named it Hudson. Hudson became popular at Sun and spread to other companies as open source.&lt;/p&gt;
&lt;p&gt;In 2011, a dispute between Oracle, which had acquired Sun, and the independent Hudson open source community led to a split under the new Jenkins name. Both branches continued, but Jenkins became much more active. In 2014, Kawaguchi became CTO of CloudBees, which provides continuous delivery products based on Jenkins.&lt;/p&gt;
&lt;h2 id=&#34;jenkins-operating-environment&#34;&gt;Jenkins operating environment&lt;/h2&gt;
&lt;p&gt;The required operating environment is as follows.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS
&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Ubuntu / Debian&lt;/li&gt;
&lt;li&gt;CentOS / Fedora / Red Hat&lt;/li&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;openSUSE&lt;/li&gt;
&lt;li&gt;FreeBSD&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Minimum hardware
&lt;ul&gt;
&lt;li&gt;256 MB RAM&lt;/li&gt;
&lt;li&gt;1 GB of free space, though 10 GB or more is recommended when running Jenkins as a Docker container.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Middleware requirements
&lt;ul&gt;
&lt;li&gt;Java 8 - JRE or JDK.&lt;/li&gt;
&lt;li&gt;OpenJDK JDK/JRE 8 - 64-bit&lt;/li&gt;
&lt;li&gt;OpenJDK JDK/JRE 11 - 64-bit&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Supported browsers
&lt;ul&gt;
&lt;li&gt;Google Chrome&lt;/li&gt;
&lt;li&gt;Mozilla Firefox&lt;/li&gt;
&lt;li&gt;Microsoft Edge&lt;/li&gt;
&lt;li&gt;Apple Safari&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;jenkins-license&#34;&gt;Jenkins license&lt;/h2&gt;
&lt;p&gt;Jenkins is open source software under the MIT License. Software under the MIT License can be redistributed and used commercially for free, and it is a very permissive license compared with other open source licenses.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.itworld.co.kr/news/107527&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;젠킨스란 무엇인가, CI(Continuous Integration) 서버의 이해&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jenkins.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenkins official site&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jenkins.io/download/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenkins download&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
      
      <category>Jenkins</category>
      
    </item>
    
  </channel>
</rss>
