2017-02-02 1 views
1

나는 jenkins UI를 변경하기 위해 사용자 정의 CSS를 사용하려고하는데, userContent 폴더에 CSS 파일을 추가하고 https://wiki.jenkins-ci.org/display/JENKINS/Simple+Theme+Plugin을 설치했습니다. 젠킨스 내부의 구성 페이지로 이동하여 테마 CSS의 URL을 업데이트 할 수 있습니다. 나는 그루비를 통해 이것을 자동화하려하지만 올바른 API를 얻지 못하고있다. 이것을 할 수도 있습니까?groovy를 통해 jenkins에서 테마 CSS의 URL을 업데이트하는 방법은 무엇입니까?

답변

2

SimpleThemeDecoratorcssUrl 또는 jsUrl 속성을 URL 문자열 (또는 재설정하려면 null)으로 설정할 수 있습니다. 변경 사항은 즉시 적용됩니다.

for (pd in PageDecorator.all()) { 
    if (pd instanceof org.codefirst.SimpleThemeDecorator) { 
    pd.cssUrl = 'https://...' 
    } 
} 
+0

감사 @Christopher. Bdw 플러그인 api를 얻는 가장 좋은 방법은 무엇입니까? 사용 가능한 유일한 클래스와 함께 패키지 이름을 사용하여 플러그인을 호출 한 것을 볼 수 있습니다. –

+0

@user_dev [플러그인 소스 코드] (https://github.com/jenkinsci/simple-theme-plugin/)를 보았지만 [확장 지점 목록] (https : //wiki.jenkins)을 확인할 수도 있습니다. -ci.org/display/JENKINS/Extension+points). –

0

다른 방법 :

import jenkins.model.Jenkins 

YELLOW = '\u001B[33m'; 
RESET = '\u001B[0m'; 

def configSimpleTheme(def descriptor, String cssUrl, String jsUrl) { 
    if (!(cssUrl == null || cssUrl.trim().isEmpty())) { 
     println("${YELLOW}Setting up css style: ${cssUrl.trim()}${RESET}") 
     descriptor.cssUrl = cssUrl.trim() 
    } 
    if (!(jsUrl == null ||jsUrl.trim().isEmpty())) { 
     println("${YELLOW}Setting up js: ${jsUrl.trim()}${RESET}") 
     descriptor.jsUrl = jsUrl.trim() 
    } 
    descriptor.save() 
} 

def jenkinsThemeCSS = System.getenv('JENKINS_THEME_CSS') ?: null 
def jenkinsThemeJS = System.getenv('JENKINS_THEME_JS') ?: null 

def themeDecorator = Jenkins.getInstance().getDescriptor("org.codefirst.SimpleThemeDecorator") 
configSimpleTheme(themeDecorator, jenkinsThemeCSS, jenkinsThemeJS) 
관련 문제