BF의 Java API가 7.0.X 에서 7.1.X로 올라오면서, 몇가지 변경이 있다.

특히, 환경 변수 세팅하는 부분... 혹시나.. 어려움을 겪으실 지 모를 분들을 위해, 예전 7.0.X 버전 것을 조금 손 봤습니다.

 

/**
  * 빌드포지 프로젝트를 실행시키는 메소드
  *
  * @param info
  * @param buildPrjNm
  * @return
  * @throws IOException
  * @throws ServiceException
  */
 private String fireBFJob(BuildInfo info, String buildPrjNm, HashMap param) throws IOException, ServiceException {
  String buildID = "";
  APIClientConnection conn;
  BuildEnvironment environ;
  
  log.debug("BuildForge Connect.....");
  conn = new APIClientConnection(HOSTNAME, BF_PORT);
    conn.authUser(AUTH_ID, AUTH_PW);

  Project project = Project.findByName(conn, buildPrjNm);
  
  // As of 7.1, We need to use Build.Request & Build
  Build.Request buildRequest= new  Build.Request( project );
  Build currentBuild = Build.create(buildRequest); // Project를 실행하기 위한 Job을 하나 만든다.

  
  // 그 Job에 할당된, 환경변수그룹을 찾아낸다. Not Enviroment , But BuildEnvironment
  environ = BuildEnvironment.findByUuid(conn, currentBuild.getBuildEnvironmentUuid());
  log.debug("  Project From BF : " + project.getUuid().trim() + ":" + project.getName() );
  log.debug("  Enviroment Form BF : " + environ.getName());

 

  if (environ != null) {
   // 넘겨진 param(HashMap)을 가지고 환경 구성
   log.debug("BuildForge 환경 구성");
   Iterator paramIter = param.keySet().iterator();
   while (paramIter.hasNext()) {
    String paramKey = (String) paramIter.next();
    String paramValue = (String) param.get(paramKey);

    BuildEnvironmentEntry en = environ.getEntry(paramKey);
    log.debug("BF 환경정보(기본값) : " + en.getParameterName() + "|" + en.getParameterValue());
    currentBuild.updateBuildEnvEntryValue(en.getUuid(), paramValue); // 빌드 잡 인스턴스의 환경이므로, 직접적으로 세팅이 안된다.
    
   }
   
   // 환경 변수 설정  확인 용
   BuildEnvironment modifiedEnviron = BuildEnvironment.findByUuid(conn, currentBuild.getBuildEnvironmentUuid());
   Iterator modifiedEnvironEntries = modifiedEnviron.getEntries().iterator();
   while( modifiedEnvironEntries.hasNext() ) {
    BuildEnvironmentEntry modifiedEntry = (BuildEnvironmentEntry)modifiedEnvironEntries.next();
    log.debug("BF 환경정보(변경값) : " + modifiedEntry.getParameterName() + "|" + modifiedEntry.getParameterValue() );
   }
   // 환경 변수 설정  확인 용 끝
   
   log.debug("Before fire..");
   buildID = currentBuild.getUuid();
   Build.fireBuild(conn, currentBuild.getUuid() );
   
   log.debug("Project : " + project.getName() + " is fired " + buildID);
   
  } else {
      log.error("Project에 할당된 환경 변수 그룹이 없습니다.");
  }
  return buildID;
 }

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스
<< PREV : [1] : ... [5] : [6] : [7] : [8] : [9] : [10] : [11] : [12] : [13] : ... [155] : NEXT >>

BLOG main image

공지사항

카테고리

분류 전체보기 (155)
Architect이야기 (1)
Rational Products (94)
Patterns (0)
JEE Technologies (3)
Methodology (0)
Apache Project (0)
Open Project (4)
Knowhow (52)
Etc (0)