Jenkins のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Jenkins へ行く。
- 1 (2017-06-02 (金) 13:06:40)
- 2 (2017-06-02 (金) 14:10:18)
- 3 (2017-06-04 (日) 13:13:00)
- 4 (2017-06-05 (月) 16:47:03)
- 5 (2017-06-06 (火) 17:25:57)
- 6 (2017-06-08 (木) 19:43:16)
- 7 (2017-06-20 (火) 14:44:39)
- 8 (2017-06-20 (火) 20:22:46)
- 9 (2017-06-26 (月) 15:05:14)
- 10 (2017-09-19 (火) 05:00:57)
- 11 (2017-09-19 (火) 20:23:22)
- 12 (2017-10-10 (火) 18:03:22)
- 13 (2017-10-12 (木) 13:33:52)
- 14 (2017-10-13 (金) 16:26:23)
- 15 (2018-02-15 (木) 14:23:42)
- 16 (2018-11-20 (火) 22:22:59)
- 17 (2018-11-21 (水) 15:38:00)
- 18 (2018-11-21 (水) 20:20:28)
- 19 (2018-11-21 (水) 21:25:14)
- 20 (2018-12-10 (月) 16:52:52)
- 21 (2019-02-05 (火) 19:49:39)
- 22 (2019-02-06 (水) 21:04:56)
- 23 (2019-02-06 (水) 22:19:26)
- 24 (2019-02-07 (木) 14:10:08)
- keywords: [Jenkins, Java] description: Jenkinsに関するメモ author: aterai pubdate: 2017-06-02
概要
Jenkins
に関するメモを記述しています。
トラブル
PipelineでStackOverflowError
- 06/01に
Pipeline
プラグイン(もしくはGitHub
プラグイン)を最新に更新すると、StackOverflowError
が発生するようになった? - 調査中
- 旧プロジェクトは問題なく実行できる
Started by user TERAI Atsuhiro
> git rev-parse --is-inside-work-tree # timeout=10
Setting origin to https://github.com/aterai/java-swing-tips
> git config remote.origin.url https://github.com/aterai/java-swing-tips # timeout=10
Fetching origin...
Fetching upstream changes from origin
> git --version # timeout=10
> git fetch --tags --progress origin +refs/heads/*:refs/remotes/origin/*
Seen branch in repository origin/master
Seen 1 remote branch
Obtained Jenkinsfile from ...
[Pipeline] End of Pipeline
java.lang.StackOverflowError
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.exists(File.java:819)
at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1282)
at sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:1249)
at sun.misc.URLClassPath.findResource(URLClassPath.java:215)
at java.net.URLClassLoader$2.run(URLClassLoader.java:569)
at java.net.URLClassLoader$2.run(URLClassLoader.java:567)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:566)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:546)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:103)
at com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:93)
at com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66)
at java.beans.Introspector.findExplicitBeanInfo(Introspector.java:448)
at java.beans.Introspector.<init>(Introspector.java:398)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at groovy.lang.MetaClassImpl$15.run(MetaClassImpl.java:3313)
at java.security.AccessController.doPrivileged(Native Method)
at groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:3311)
at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:3288)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:260)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:302)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:312)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:265)
at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:879)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:125)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:166)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at com.cloudbees.groovy.cps.CpsTransformer.visit(CpsTransformer.groovy:279)
...
インストール後ジョブがなければ再起動が無効
- 最近の
Weekly
版(2.5x
頃?)は、「インストール完了後、ジョブがなければJenkinsを再起動する」でジョブが実行中でも再起動されてしまい、ビルドが失敗する? - 「ビルドを並列実行」を「しない」にしているビルドを複数を実行すると、後から実行したビルドがビルドキューに入らず、並列実行されてしまう
- 「システムの設定」で「同時ビルド数」を
1
にすれば、並列実行されなくなる - Jenkins Security Advisory 2017-04-26
- SECURITY-412: Restart Jenkins immediately, after all builds are finished, or after all plugin installations and builds are finished
- ジョブがエラーにはならなくなったが、実行中のジョブの終了は待たずにキャンセル扱いになる?
- 「システムの設定」で「同時ビルド数」を
1.597でフォルダ構成が変更
Jenkins
を1.597
にアップグレードしたら表示がおかしくなる1.597
で、JENKINS_HOME
以下のフォルダ構成が変更になったException
をみると、Disk usage plugin
がフォルダ文字列をパースできずにエラーを出している- Important: Upgrading to Jenkins 1.597
修正はまだスナップショットなので、当面Disk usage plugin
を削除しておくことで対応
Jenkinsの自動更新に失敗
Jenkins
の自動更新が失敗する
リポジトリブラウザの設定が保存されない
[JENKINS-22064 Git Repository Browser URL not saved anymore - Jenkins JIRA]で、URLが正常に保存されない
Jenkinsの設定
- ホームディレクトリ(
Windows
環境)- デフォルトの
~/.jenkins
に実行ファイルやビルド結果を一緒に保存すると、バックアップなどが面倒 C:\Program Files (x86)\Jenkins\
にjenkins.exe
やjenkins.war
をインストールするとjenkins.xml
などが編集しづらいので、C:\Jenkins_JAR
以下にインストールするC:\Jenkins_JAR\jenkins.xml
を以下のように変更し、プラグインやビルドをC:\jenkins
に変更する<env name="JENKINS_HOME" value="C:\jenkins"/>
- システム環境変数
JAVA_HOME
で指定したバージョンのJava
をJenkins
が使用するようにC:\Jenkins_JAR\jenkins.xml
を変更<executable>%JAVA_HOME%\bin\java</executable>
- デフォルトの
- 高度な設定(
Jenkins
の管理、システムの設定にあるボタンをクリック)- ワークスペース・ルートディレクトリ:
C:/Edian/${ITEM_FULLNAME}
- ビルド・ルートディレクトリ:
${ITEM_ROOTDIR}/builds
- ワークスペース・ルートディレクトリ:
Jenkinsfile
- パイプラインで
ant
を呼び出す方法がよく分からないので、~/.sdkman/candidates/ant/current/bin/ant
を直接呼んでいる
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/aterai/java-swing-tips.git'
}
}
stage('PMD') {
steps {
sh "~/.sdkman/candidates/ant/current/bin/ant -file all.xml pmd"
step([$class: 'PmdPublisher', pattern: '**/pmd.xml'])
}
}
stage('CheckStyle') {
steps {
sh "~/.sdkman/candidates/ant/current/bin/ant -file all.xml checkstyle"
step([$class: 'CheckStylePublisher', pattern: '**/checkstyle-result.xml'])
}
}
}
}
プラグイン
GIT plugin
Git cliant plugin
も一緒にインストールされる- ログのエンコーディングが変更できない
ログの文字コードをShift_JIS
にカスタマイズする2.3.5
付近で修正された?ようなので、変更は不要になった
- ログのエンコーディングが変更できない
Warnings Plug-in
- コンソールログから警告を集計してグラフ表示
- 同じくログのエンコーディングが変更できない
ログの文字コードをShift_JIS
にカスタマイズする- #JENKINS-24611 Warnings plugin, missing AntJavaParser in the parser selection list - Jenkins JIRAで修正された
- 同じくログのエンコーディングが変更できない