Jenkins for Javascript Development Env.. About me 윤지수

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
CHAP. 2 안드로이드 개발 도구 설치. © 2012 생능출판사 All rights reserved 개발 과정의 개요.
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
Android 프로그램개발 환경. 학습 목표 ■ 교육 목표  JDK 설치  JDK 환경 설정  Eclipse 설치  Android SDK 설치  ADT Plug-in 설치  Android Virtual Device(AVD) 설치  Android 예제 프로그램.
2016 유성환 Hybrid MOBILE.
“ 안드로이드 ” 개발 환경 설정 [ 컨버전스팀 ] ㈜한 싹 2011 년 01 월 03 일.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
新 연구관리 프로그램 SAP 설치 안내 1. SAP GUI 7.3 설치 2전자증빙 솔루션 설치 배포 :
Image & Video processing
코크파트너 설치 가이드 Window 7.
Power Java 제3장 이클립스 사용하기.
Sep Youn-Hee Han 웹서비스 컴퓨팅 수업을 위한 코딩 환경 준비 Sep Youn-Hee Han
3조 오세혁 김문환 김용현.
CUDA Setting : Install & Compile
CI서버 구축 목차 CI(Continuous Integration) 개요 CI 설치, 환경 구축 maven build
J2ME Install 부산대학교 인공지능 연구실.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
Ubiquitous Computing Practice - Part I (Installation) -
이클립스를 이용한 AVR 개발환경 구축 로보틱스랩 유승일.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
22강. 파일 업로드 - 파일 업로드 라이브러리 설치 - 파일 업로드 프로그래밍 Lecturer Kim Myoung-Ho
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
ARM Development Suite v1.2
Cross Compiler 설치.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
환경 : Windows7 64bit 버전 : apache-ant-1.9.7
Android studio로 Application 만들기.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
웹 어플리케이션 보안 2016년 2학기 10. Workflow tools.
반응형 웹 프로젝트
개발 환경 세팅.
IPython Notebook + Spark + TensorFlow on MacOS
영상처리 실습 인공지능연구실.
실용주의 개발 프로세스 및 개발 환경 박재성 2008년 4월 26일.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
BERT Install Guide 숭실대학교 test.
툴 설치 가이드 PrimeTime SynopsysMentor.
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
웹디자인
Chapter 34. Advanced Web Page Options
WebtoB - Jeus 연동.
빌드 성공.
Python 및 OpenCV 설치.
( Windows Service Application Debugging )
오토베이스9 사용자 라이브러리 오토베이스 교육센터 그래픽 모듈 설정과 화면전환에 대하여 자세히 알아본다. <목차>
Cold Spring Harbor Laboratory Press 저널 이용 매뉴얼
OpenCV 설정 2.21 만든이 딩딩.
암호학 응용 Applied cryptography
DK-128 개발환경 설정 아이티즌 기술연구소
시스템 인터페이스 Lab#5 쉡 실습.
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
암호학 응용 Applied cryptography
05. General Linear List – Homework
StyleCop 소개 SGS Framework 개발 팀.
Tensorboard in Windows
12 그리드 시스템.
Map Designer Solution 소개자료
K PaaS-TA 앱 운영.
6 객체.
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

Jenkins for Javascript Development Env.

About me 윤지수

지속적인 통합 ? > 품질, 안전성

지속적인 통합 : continuous integration (CI) 1.Watch code 2.Build Project 3.Run Tests 4.Publish Results

첫째. CI? Jenkins?

Jenkins vs. Hudson Java.net 을 사용하던 Hudson 은 SUN 이 Oracle 에 인수된 이후 Oracle 의 ‘Hudson’ 상표권 주장으로 Jenkins 으로 분리

Jenkins vs. Hudson 비슷하다 ( 설정, 플러그인 등 )

Jenkins 의 실체 : jenkins.war + web server

Jenkins 의 실체

둘째. Jenkins 해보기

오해 CI 구축은 어렵다 Javascript 프로젝트의 CI 구축은 더 어렵다 CI 운영비용은 비싸다 CI 는 규모가 있는 프로젝트에서만 하는 것이 다

Today’s Goal? : Javascript CI 환경 만들기 Jenkins 와 함께 쉽게 !

할 짓 요약 Jenkins 설치 소스 보관소 연동 코드가 좋은 코드인지 확인 코드가 잘 돌아가는 건지 확인 코드량이 얼마인지 확인

Jenkins 설치소스 보관소 연동 Github 코드가 좋은 코드인지 확인 JSLint JSLint 결과 Jenkins 에서 시각화코드가 잘 돌아가는 건지 확인 Testing framework : Qunit 테스트 자동화 : JsTestDriver 코드 커버리지 : jscoverage 테스트 결과를 jenkins 에서 시각 화 Test 결과 (jUnit test result Plugin)Coverage 결과 (cobertura Plugin) 코드량이 얼마인지 확인 N’Siq Plugin

이런 젠장, 뭔가 복잡해.. 다.. 기억하지 않으셔도 되요.

Jenkins 설치 1.Download

Jenkins 설치 2. install

Jenkins 설치 3. Window service

Jenkins 설치 4. Browser 확인

Jenkins 설치 5. Jenkins Plugins 설치 방법

Jenkins 설치 6. 새로운 프로젝트 생성 !

Jenkins 설치 6. 새로운 프로젝트 생성 !

Jenkins 설치 6. 새로운 프로젝트 생성 !

Git 연동 1. Download github plugin 2. local 에 git 설치 3. Jenkins 설정 - git

Git 연동 project 에 설정하기

Git 연동 확인하기

JSLint 연동 연동 방법 개요 1.JSLint 의 Java 버전을 다운로드 2.Jenkins 에 Ant 빌드 스크립트로 실행 3.Jenkins 에서 그래프로 보여주기 위해서 Violations Plugin 설치 4.Build

JSLint 연동 1. Download JSLint4Java 2. Ant Build 파일 만들기 Jekins/workspace/{projectname}/build.xml

JSLint 연동 3. project 설정에 추가하기

JSLint 연동 4. 확인 (result.xml)

JSLint 연동 5. Jenkins 그래프로 보기 – violations plugin 설치 6. Jenkins 그래프로 보기 – project 설정

JSLint 연동 7. Jenkins 그래프로 보기 – 빌드 그리고 확인 (1) 70 개의 문제가 발견 됨을 표시하고 있음

JSLint 연동 7. Jenkins 그래프로 보기 – 빌드 그리고 확인 (2) 파일별로 오류 내용을 확인 할 수 있음

JsTestDriver 연동 연동 방법 개요 1.JsTestDriver.jar, JsTestDriver-Qunit adaptor, jscoverage 다운로드 2.JsTestDriver.conf 설정 3.Ant 빌드 스크립트 작성 4.JsTestDriver Running 5. 테스트 결과를 그래프로 보기 위한 설정 (jUnit test result report) 6. 커버리지 결과를 그래프로 보기 위한 설정 (cobertura Plugin 설치 ) 7.Cobertura Plugin 에서 지원되는 xml 타입으로 coverage 결과를 변환

JsTestDriver 연동 1. 다운로드 : JsTestDriver, JsTestDriver-Qunit adaptor, jscoverage JsTestDriver.jar,jscoverage.jar JsTestDriver-Qunit.jar # 이걸 받으면 안됨 (qunit 변경 메소드 반영 안됨 )

JsTestDriver 연동 2. JsTestDriver.conf 설정 server: load: - lib/qunit.js - lib/qunit_jstestdriver_adaptor/equiv.js //qunit adaptor - lib/qunit_jstestdriver_adaptor/QUnitAdapter.js //qunit adaptor - lib/jindo.desktop.all.js - src/*.js - lib/*.js - spec/testcode.js serve: - spec/test.html - lib/qunit.css plugin: - name: "coverage" jar: "lib_etc/coverage.jar" module: "com.google.jstestdriver.coverage.CoverageModule" # jstestdriver configuration :

Jenkins 설치 Git 연동 JSLint 연동 jsTestDriver 연동 LOC JsTestDriver 연동 3. 잠깐 ! JsTestDriver 는 CI 와 별개로 별도로 달리고 있어야 함 C:\code\run\jenkins\workspace\jenkins-test> java -jar JsTestDriver.jar --port 4224

JsTestDriver 연동 4. Ant Build 실행 C:\code\run\jenkins\workspace\jenkins-test> java -jar JsTestDriver.jar --port 4224 build jstestdriver # jstestdriver command line flags :

JsTestDriver 연동 5. 지금까지 Ant Build build jstestdriver

JsTestDriver 연동 6. Build ! 테스트 결과 : TEST-Chrome_ _Windows.DefaultaModule.xml 테스트 커버리지 : jsTestDriver.conf-coverage.dat

JsTestDriver 연동 7. 테스트 결과를 그래프로 보기 위한 projcet 설정 (jUnit test result report) 동작 방식 : ‘TEST-Chrome_ _Windows.DefaultaModule.xml’ 파일을 분석해서 결과를 보여줌.

JsTestDriver 연동 8. Build 후 확인

JsTestDriver 연동 8. 커버리지 결과를 그래프로 보기 위한 설정 (cobertura Plugin 설치 ) 9. Cobertura Plugin 에서 지원되는 xml 타입으로 coverage 결과를 변환 jsTestDriver.conf-coverage.dat 파일을 Cobertura 지원 xml 타입으로 변환하기 위해 python 오픈소스 script 를 활용 먼저 Local 에 Python 설치 : Cobertura 변환 Python script 다운로드 : 실행 : Jenkins Python Plugin 을 통해서 script 를 실행 할 수 있지만, 윈도우에서 Python 실행 PATH 를 인식하지 못하는 문제 발견. 대안으로 Ant build 로 실행하고 exeutable 에 절대경로를 입력

JsTestDriver 연동 9. Cobertura Plugin 에서 지원되는 xml 타입으로 coverage 결과를 변환 build python for making cobertura xml Ant build 에 python script 실행 추가

JsTestDriver 연동 10. Project 설정에 corbetura 추가

JsTestDriver 연동 1. Build 후 coverage 결과 확인

LOC 연동 1. LOC(Line of Code) NHN Opensource 활용 : 복잡도,LOC 를 계산해주지만 LOC 만을 활용 2. project 설정

LOC 연동 3. Build 후 확인

Complete!

좀 더 해야 할 것 Jstestdriver test code 에서 외부 라이브러리를 사용하는 경우 에러가 발생. Js 파일을 로딩하는데 문제가 있음 (require.js 와 같은 것으로 동적로딩 필요 ) 복잡도, 중복코드 검사 Cyclomatic complexity 나 중복코드 검사 Plugin 연동 Reporting Other Testing Selenium, WebDriver, or PhantomJS Mobile 환경 테스트 Other CI (Travis CI) Github 와 찰떡 궁합으로 경량화된 CI

Appendix. Inside NHN 품질관리 Hudson 기반의 Quality Practice 활동 (book) JSLint Cyclomatic Complexity, Coverage 통합 자체 Plugin 개발 Selenium 활용한 UI Test 자동 Dashboard, JIRA 연동 중복코드 검사 기타 프로젝트별 Build 에 필요한 Hudson Plugin 개발

참고