레이블이 Jenkins인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Jenkins인 게시물을 표시합니다. 모든 게시물 표시

2019년 10월 2일 수요일

jenkins pre build, post build 시 execute shell 추가할 때 해당 부분이 문제가 있어 빌드 실패가 된다면?


해당 execute shell 명령에서 문제가 생길 경우 build fail이 발생한다.
이를 해결하기 위해서는 아래와 같은 명령어를 추가한다.


  • 명령 실패 시 추가 실행을 중지하려면
    • command || exit 0

  • 명령이 실패할 때 실행을 계속하려면
    • command || true

2019년 7월 18일 목요일

API Test 진행 시 profile 선택 관련 정리 - Maven profile, yaml, lombok

1. jenkins에서 profile 선택하여 빌드 및 테스트 수행
mvn clean test -P ${evn}
env : env는 jenkins의 string parameter나 choice parameter를 이용한다.
ex) evn = qa or release or stage

2. intelliJ에서는

3. 프로파일별 테스트 데이터 관리는 yaml 파일로 관리한다.
 
 yaml file 위치

testdata.yaml
userId : test
password : qwe123

TestData.java
TestData.java는 lombok library를 이용하여 코드를 간결화 한다.
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.yaml.snakeyaml.Yaml;

import java.io.InputStream;

@Getter 
@Setter
public class TestData {
 private String userId;
 private String password;

 @Override
 public String toString() {
  return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
 }

 public TestData getTestData() {
  Yaml yaml = new Yaml();
  InputStream inputStream = TestData.class.getResourceAsStream("/testdata.yaml");
  return yaml.loadAs(inputStream, TestData.class);
 }
}

사용법

TestData testData = new TestData();
testData = testData.getTestData();
RestAssured.baseURI = testData.getTargetURL();

2019년 7월 2일 화요일

Jenkins Parameter를 java code로 받아오는 방법

1. Jenkins 구성에서 General탭의 "이 빌드는 매개변수가 있습니다." 체크
2. String parameter 등의 매개변수 추가
3. Build 옵션에서 Goal and options에 추가한 파라메터를 추가
-> clean test -D자바코드에서사용할파라메타=$젠킨스에서추가한파라메타
=> ex) clean test -DdeviceName=$deviceName -Dversion=$version

4. Java code에서는
String DEVICENAME = System.getProperty("deviceName");
String VERSION = System.getProperty("version");

2019년 6월 28일 금요일

Jenkins API를 이용한 원격 빌드 방법

시나리오
1) 해당 레포지토리를 빌드하는 Jenkins(A)와 API Test를 하는 Test용 Jenkins(B)가 있다.
2) A에서 빌드가 완료되고 서버의 인스턴스가 올라오면 B에서 테스트가 자동으로 시작된다.
즉, 물리적인 장비가 다르다.

위 시나리오에 맞춰 Jenkins를 구성할 때 아래의 방법을 이용한다.

1. B에서 해당 계정(빌드를 수행할 계정)의 API Token을 얻어온다.
  • http://JENKINS_URL/me/configure 에 접속
  • API Token 란의 show Legacy API Token 클릭(add new token 해도 된다.)
2. A에서 Post Step 란에 Excute Shell을 클릭하고 아래의 URL을 입력한다.
  • http://JENKINS_URL/job/JOBNAME/build or http://JENKINS_URL/job/JOBNAME/buildWithParameters
  • /build 와 /buildWithParameters의 차이 : 빌드 시 parameter 유무
  • ex: curl -d  "branch=master&env=qa" http://JENKINS_URL/job/JOBNAME/buildWithParameters?token=API_TOKEN
3. B에서 빌드 유발에서 "빌드를 원격으로 유발" 클릭하고 Authentication Token에 API Token을 입력한다.


2018년 10월 4일 목요일

젠킨스에서 외부 리포트 사용 시 보안정책 해결 방법

젠킨스에서 외부에서 생성된 리포트 사용 시 보안정책에 의해 css 적용이 안된다.

디폴트 룰 셋은 아래와 같다.














해결방법
jenkins.xml에 service arguments에 아래의 옵션을 추가한다.
"-Dhudson.model.DirectoryBrowserSuppert.CSP="