Jenkins(소프트웨어)

Jenkins (software)
젠킨스
원본 작성자가와구치 고스케[1]
초기 출시2011년 2월 2일 (2011-02-02)[2]
안정적 방출
2.417[3] / 2023년 8월 1일, 13일(2023년 8월 1일)
저장소
작성 위치자바
플랫폼Java 11, Java 17
유형연속배송
면허증.MIT 라이선스[4][5]
웹사이트www.jenkins.io Edit this on Wikidata

Jenkins는 오픈 소스 자동화 서버입니다.소프트웨어 개발의 빌드, 테스트배포관련된 부분을 자동화하여 지속적인 통합과 지속적인 제공을 촉진합니다.Apache Tomcat과 같은 서블릿 컨테이너에서 실행되는 서버 기반 시스템입니다.AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCaseRTC를 포함한 버전 제어 도구를 지원하며 Apache Ant, Apache Mavensbt 기반 프로젝트와 임의 셸 스크립트 및 Windows 배치 명령을 실행할 수 있습니다.

역사

Jenkins 프로젝트는 원래 Hudson으로 이름 지어졌으며 프로젝트 이름에 대한 권리를 주장한 Oracle과의 분쟁 이후 2011년에 이름이 바뀌었습니다.오라클 포크인 허드슨은 이클립스 재단에 기부되기 전에 한동안 계속 개발되었습니다.Oracle의 Hudson은 더 이상[6][7] 유지보수되지 않으며 2017년 [8]2월에 구식으로 발표되었습니다.

2007년경 Hudson은 크루즈 컨트롤 및 기타 오픈 소스 빌드 [1][9]서버의 더 나은 대안으로 알려지게 되었습니다.2008년 5월 JavaOne 컨퍼런스에서 이 소프트웨어는 개발자 솔루션 [10]부문에서 Duke's Choice Award를 수상했습니다.

2010년 11월 Oracle이 Sun Microsystems를 인수한 후 Hudson 커뮤니티에서 사용되는 인프라와 관련하여 문제가 발생했습니다. 이 문제는 Oracle의 [11]관리 및 관리에 대한 문제를 포괄하는 것으로 확대되었습니다.주요 프로젝트 기여자들과 오라클 간의 협상이 이루어졌으며, 많은 합의 영역이 있었지만 오라클이 2010년 12월 상표권을 주장하고 상표권을 신청한 후 주요 걸림돌은 "Hudson"이라는 상표명이었습니다.그 결과 2011년 1월 11일 프로젝트 이름을 "Hudson"에서 "Jenkins"로 변경해야 한다는 투표 요청이 있었습니다.이 제안은 2011년 1월 29일 지역사회 투표에 의해 압도적으로 승인되어 젠킨스 [12]프로젝트를 만들었습니다.

2011년 2월 1일, 오라클은 허드슨의 개발을 계속할 것이며 젠킨스를 이름 바꾸기보다는 포크로 간주했다고 말했습니다.따라서 젠킨스와 허드슨은 서로가 포크라고 주장하며 [13]두 개의 독립적인 프로젝트로 계속되었습니다.2019년 6월 기준으로 GitHub의 Jenkins 조직은 667명의 프로젝트 구성원과 약 2,200개의 공개 [14]저장소를 보유하고 있으며 [15]2016년 마지막 업데이트와 비교하여 Hudson의 28개의 프로젝트 구성원과 20개의 공개 저장소를 보유하고 있습니다.

2011년, 창작자 가와구치 고스케는 허드슨/[16]젠킨스 프로젝트에 대한 그의 작업으로 오라일리 오픈 소스 상을 수상했습니다.

2016년 4월 20일 버전 2는 기본적으로 [17]Pipeline 플러그인을 사용하도록 설정된 상태로 릴리스되었습니다.이 플러그인을 사용하면 Apache Groovy 기반의 도메인 특정 언어를 사용하여 빌드 명령을 작성할 수 있습니다.

젠킨스는 2017년 2월 8일 [8]이클립스에서 허드슨을 대체했습니다.

2018년 3월, Kubernetes를 위한 Jenkins X 소프트웨어 프로젝트가 공개되었으며,[18][19] AWS EKS를 비롯한 다양한 클라우드 프로바이더를 지원합니다.

빌드

빌드는 다음과 같은 다양한 방법으로 트리거될 수 있습니다.

  • 버전 제어 시스템에서 푸시된 커밋에 의해 트리거되는 웹 훅
  • 크론 유사 메커니즘을 통한 예약
  • 특정 빌드 URL을 요청합니다.
  • 대기열의 다른 빌드가 완료된 후
  • 다른 빌드에서 호출됨

플러그인

Jenkins용 플러그인은 Java 이외의 언어로 작성된 프로젝트로 확장됩니다.Jenkins를 대부분의 버전 제어 시스템 및 버그 데이터베이스와 통합하는 데 플러그인을 사용할 수 있습니다.많은 빌드 도구는 해당 플러그인을 통해 지원됩니다.또한 플러그인은 젠킨스의 모양을 변경하거나 새로운 기능을 추가할 수 있습니다.다양한 형식의 테스트 보고서(: Jenkins, MSTest, NUnit 등)[20]와 자동 테스트를 지원하는 자동 테스트를 생성하는 장치 테스트 전용 플러그인 세트가 있습니다.빌드는 플러그인에서 지원하는 다양한 형식의 테스트 보고서를 생성할 수 있으며(JUNit 지원은 현재 번들로 제공됨) Jenkins는 보고서를 표시하고 추세를 생성하여 GUI에 렌더링할 수 있습니다.

메일러

빌드 [21]결과에 대한 전자 메일 알림을 구성할 수 있습니다.Jenkins는 다음과 같은 중요한 이벤트가 발생할 때마다 지정된 수신자에게 전자 메일을 보냅니다.

  1. 빌드에 실패했습니다.
  2. 불안정한 체격.
  3. 빌드 실패 후 성공적인 빌드, 위기가 끝났음을 나타냄
  4. 성공적인 빌드 후 불안정한 빌드로 회귀가 있음을 나타냅니다.

자격 증명

Jenkins에 자격 증명을 저장할 수 있습니다.다른 플러그인이 다른 유형의 [22]자격 증명을 저장하고 검색할 수 있도록 표준화된 API를 제공합니다.

외부 작업 모니터링

외부에서 실행된 [23]작업의 결과를 모니터링하는 기능을 추가합니다.

SSH 에이전트

이 플러그인을 사용하면 SSH를 [25]통해 *nix 시스템에서 에이전트(이전의 [24]슬레이브)를 관리할 수 있습니다.새로운 유형의 에이전트 시작 방법을 추가합니다.이 시작 방법은 다음과 같습니다.

  1. 지정된 사용자 이름으로 지정된 호스트에 대한 SSH 연결을 엽니다.
  2. 해당 사용자의 기본 Java 버전을 확인합니다.
  3. [아직 구현되지 않음] 기본 버전이 Jenkins의 버전과 호환되지 않는 경우에이전트.jar, 올바른 버전의 Java를 찾으십시오.
  4. 적절한 버전의 Java가 설치되면 SFTP를 통해 최신 agent.jar를 복사합니다(SFTP를 사용할 수 없는 경우 scp로 다시 이동).
  5. 에이전트 프로세스를 시작합니다.

자바독

이 플러그인은 Jenkins에 Javadoc 지원을 추가합니다.이 기능은 이전에는 코어의 일부였지만 Jenkins 1.431을 기준으로 별도의 [26]플러그인으로 분리되었습니다.

이 플러그인을 사용하면 "Javadoc 게시"를 빌드 후 작업으로 선택할 수 있습니다. 이 작업은 Javadoc를 수집할 디렉토리와 [27]각 성공적인 빌드에 대해 보존이 필요한지 여부를 지정합니다.

온라인 설명

Jenkins를 사용하여 명령 프롬프트 대신 사용자 인터페이스를 통해 셸 스크립트 실행을 예약하고 모니터링할 수 있습니다.

보안.

젠킨스의 보안은 액세스 제어와 외부 위협으로부터의 보호라는 두 가지 요소에 따라 달라집니다.액세스 제어는 사용자 인증과 권한 부여의 두 가지 방법으로 사용자 정의할 수 있습니다.CSRF 공격 및 악의적인 빌드와 같은 외부 위협으로부터의 보호도 [28]지원됩니다.

수상 및 표창

  • 2011년 [29]InfoWorld Bossie Award (최우수 오픈 소스 소프트웨어 상)
  • 2014년에 Geek Choice Award를 받았습니다.[29]

참고 항목

레퍼런스

  1. ^ a b Dyer, Dan. "Why are you still not using Hudson?". Retrieved 2008-05-21.
  2. ^ 젠킨스 1.396웨이백 머신에서 2018-12-08 아카이브를 공개했고, 젠킨스의 첫 번째 공개가 게시되었습니다, 카와구치 고스케.
  3. ^ "Release 2.417". 1 August 2023. Retrieved 5 August 2023.
  4. ^ "LICENSE.txt". jenkinsci/jenkins (source code repository). GitHub (published 2011-09-11). 2008-02-12. Archived from the original on 2016-10-18. Retrieved 2016-10-18.
  5. ^ Kawaguchi, Kohsuke; et al. "Use Hudson: License". Archived from the original on February 7, 2009. Retrieved January 30, 2011.
  6. ^ "About Jenkins". Eclipse Wiki: Jenkins. Retrieved 6 August 2017.
  7. ^ "About Jenkins". Wayback Machine: Eclipse Wiki, first available on 6 August 2017. Archived from the original on 4 September 2018. Retrieved 3 September 2018.
  8. ^ a b "About Jenkins". Eclipse Wiki history.
  9. ^ Fredrick, Jeffrey. "What is the difference between Hudson and CruiseControl for Java projects?". Stack Overflow. Retrieved January 17, 2011.
  10. ^ Duboscq, Geneviève (2008). "2008 JavaOne Conference: Duke's Choice Awards Winners for 2008". 2008 Java One Conference. java.sun.com. Retrieved May 21, 2008.
  11. ^ Rodrigues, Savio (December 3, 2010). "Oracle's open source missteps continue with Hudson project". InfoWorld. Retrieved May 31, 2018.
  12. ^ Proffitt, Brian (February 2, 2011). "Hudson devs vote for name change; Oracle declares fork". ITWorld. Retrieved May 31, 2018.
  13. ^ Krill, Paul (May 4, 2011). "Oracle hands Hudson to Eclipse, but Jenkins fork seems permanent". InfoWorld. Retrieved May 31, 2018.
  14. ^ "Jenkins organization on GitHub". GitHub. Retrieved May 31, 2018.
  15. ^ "Hudson organization on Github". GitHub. Retrieved May 31, 2018.
  16. ^ Morris, Richard (July 17, 2012). "Kohsuke Kawaguchi: Geek of the Week". Retrieved May 31, 2018.
  17. ^ "What's New in Jenkins 2.0". August 24, 2016.
  18. ^ "Introducing Jenkins X: a CI/CD solution for modern cloud applications on Kubernetes". Introducing Jenkins X: a CI/CD solution for modern cloud applications on Kubernetes.
  19. ^ "Continuous Delivery with Amazon EKS and Jenkins X". Amazon Web Services. November 7, 2018. Archived from the original on May 6, 2019. Retrieved November 23, 2018.
  20. ^ "Plugins". wiki.jenkins-ci.org.
  21. ^ "Mailer - Jenkins - Jenkins Wiki". wiki.jenkins.io. Retrieved November 26, 2017.
  22. ^ "Credentials Plugin - Jenkins - Jenkins Wiki". wiki.jenkins-ci.org. Retrieved November 26, 2017.
  23. ^ "Monitoring external jobs - Jenkins - Jenkins Wiki". wiki.jenkins.io. Retrieved November 26, 2017.
  24. ^ "Jenkins source code". GitHub. Retrieved 2018-05-19.
  25. ^ "SSH Build Agent - Jenkins Plugin". plugins.jenkins.io. Retrieved June 12, 2020.
  26. ^ "Javadoc Plugin - Jenkins - Jenkins Wiki". wiki.jenkins.io. Retrieved November 26, 2017.
  27. ^ "Generate and publish edoc in Jenkins using Javadoc plugin Erlanger".
  28. ^ "Securing Jenkins". jenkins.io. Retrieved 2016-09-13.
  29. ^ a b "Awards - Jenkins - Jenkins Wiki". wiki.jenkins-ci.org. Retrieved 2016-09-13.

외부 링크