Submit Search
Hudson using Groovy #jggug
1 like
1,311 views
kimukou_26 Kimukou
1 of 21
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
More Related Content
PDF
Drone.io のご紹介
Uchio Kondo
PDF
とある帽子の大蛇料理Ⅱ
Masami Ichikawa
PDF
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
PDF
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
Taira Hajime
PPTX
オンプレ&HTTP Proxyな環境でRancherOS入れてみた話
YASUKAZU NAGATOMI
PDF
Jenkinsについて
Satoshi Namai
PDF
Docker入門
Shiojiri Ohhara
PPT
Python開発環境三種の神器
Yukitaka Uchikoshi
Drone.io のご紹介
Uchio Kondo
とある帽子の大蛇料理Ⅱ
Masami Ichikawa
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
Taira Hajime
オンプレ&HTTP Proxyな環境でRancherOS入れてみた話
YASUKAZU NAGATOMI
Jenkinsについて
Satoshi Namai
Docker入門
Shiojiri Ohhara
Python開発環境三種の神器
Yukitaka Uchikoshi
What's hot
(18)
PDF
Lxc cf201207-presen
Kouhei Maeda
PDF
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
ODP
こんにちはGroovy
irof N
PPT
Shibuya Pm Tt08 Advanced Mogilefs
guest172cfb
KEY
Git (実践入門編)
Naomichi Yamakita
PPTX
Casperjsのインストール
Kohei Misu
PDF
fluentd
Keisuke Kamada
PDF
Gitのよく使うコマンド
YUKI Kaoru
PPTX
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
PDF
NanoStrand
Masashi Umezawa
PPTX
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu
PDF
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
PDF
CR5とJavaScriptによるウェブアプリの作り方
MintJams Inc.
PDF
Node予備校 vol.1 名古屋
Mori Shingo
PDF
実践Go ツールの作成から配布まで
Yusuke Miyake
PPTX
Code Pack の話
Yoshihisa Ozaki
PPTX
主婦は見た!Azureでtensor flow
美穂 山田
PDF
A_road_to_AMBER_simulations_ver_1.0
Satoshi Kume
Lxc cf201207-presen
Kouhei Maeda
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
こんにちはGroovy
irof N
Shibuya Pm Tt08 Advanced Mogilefs
guest172cfb
Git (実践入門編)
Naomichi Yamakita
Casperjsのインストール
Kohei Misu
fluentd
Keisuke Kamada
Gitのよく使うコマンド
YUKI Kaoru
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
NanoStrand
Masashi Umezawa
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
CR5とJavaScriptによるウェブアプリの作り方
MintJams Inc.
Node予備校 vol.1 名古屋
Mori Shingo
実践Go ツールの作成から配布まで
Yusuke Miyake
Code Pack の話
Yoshihisa Ozaki
主婦は見た!Azureでtensor flow
美穂 山田
A_road_to_AMBER_simulations_ver_1.0
Satoshi Kume
Ad
Similar to Hudson using Groovy #jggug
(20)
PDF
明日から使えるgradle
kimukou_26 Kimukou
PPTX
Jenkins と groovy
Kohsuke Kawaguchi
PDF
Groovy Shell Scripting 2015
Uehara Junji
PDF
Gws 20120521 gradle
Nobuhiro Sue
PDF
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Yuki Iwanari
PDF
Jenkins plugin memo
Kiyotaka Oku
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
PDF
Groovyの紹介20130323
Yasuharu Hayami
PPTX
Jenkins使ってみた~Windows編~
Yuta Matsumura
PDF
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
PDF
Gws 20130315 gradle_handson
Nobuhiro Sue
PDF
groovy 2.1.0 20130118
Uehara Junji
PDF
Gradle a new Generation Build Tool
Shinya Mochida
PPT
G*workshop sendai 20100424(v2)
Nobuhiro Sue
PPTX
xUnitハンズオン第4回テキスト
mizuky fujitani
PDF
Jenkinsstudy#4kokawa
Takashi Kokawa
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
ODP
Jenkins導入ライブ
Hiasyoshi Suehiro
PDF
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
PDF
Jenkins+Play!で気軽にCI
Takafumi Ikeda
明日から使えるgradle
kimukou_26 Kimukou
Jenkins と groovy
Kohsuke Kawaguchi
Groovy Shell Scripting 2015
Uehara Junji
Gws 20120521 gradle
Nobuhiro Sue
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Yuki Iwanari
Jenkins plugin memo
Kiyotaka Oku
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Groovyの紹介20130323
Yasuharu Hayami
Jenkins使ってみた~Windows編~
Yuta Matsumura
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
Gws 20130315 gradle_handson
Nobuhiro Sue
groovy 2.1.0 20130118
Uehara Junji
Gradle a new Generation Build Tool
Shinya Mochida
G*workshop sendai 20100424(v2)
Nobuhiro Sue
xUnitハンズオン第4回テキスト
mizuky fujitani
Jenkinsstudy#4kokawa
Takashi Kokawa
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
Jenkins導入ライブ
Hiasyoshi Suehiro
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
Jenkins+Play!で気軽にCI
Takafumi Ikeda
Ad
More from kimukou_26 Kimukou
(9)
PPTX
JRebel for Android 1.2.14 update
kimukou_26 Kimukou
PDF
JRebel for Android 1.0 を試食してみた
kimukou_26 Kimukou
PDF
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
kimukou_26 Kimukou
PDF
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
kimukou_26 Kimukou
PDF
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
PDF
Griffon10 in groovy_fx
kimukou_26 Kimukou
PDF
Twitter sphere of #twitter4j #twtr_hack
kimukou_26 Kimukou
PDF
griffon plugin を 実際に作ってみよう #jggug
kimukou_26 Kimukou
PDF
Layout analyzerでのgroovyの利用について
kimukou_26 Kimukou
JRebel for Android 1.2.14 update
kimukou_26 Kimukou
JRebel for Android 1.0 を試食してみた
kimukou_26 Kimukou
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
kimukou_26 Kimukou
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
kimukou_26 Kimukou
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
Griffon10 in groovy_fx
kimukou_26 Kimukou
Twitter sphere of #twitter4j #twtr_hack
kimukou_26 Kimukou
griffon plugin を 実際に作ってみよう #jggug
kimukou_26 Kimukou
Layout analyzerでのgroovyの利用について
kimukou_26 Kimukou
Hudson using Groovy #jggug
1.
HudsonでGroovy
2010/12/09 @kimukou_26
2.
みなさん、Groovyスクリプトを書くとき
何使っていますか~ 自分はGroovyConsoleのWebStart版使ってます ( http://d.hatena.ne.jp/bluepapa32/20101006/1286337869 ) ここをクリック
3.
インストールは手軽~ 1.
ウインドウ閉じた時に記 述保持機能あるよ 2. Grape やAntBuilderも問 題なしに使えます
4.
@kiy0taka さんのブログで [ groovyでsay読み上げ
]の話見て
5.
WindowsでGroovyConsole+
AquesTalk(音声再生dll)で 出来ないもんかな~ JNAを使って AquesTalkDa.dll を読込むgroovyコード GroovyClassLoaderを JNA 使って対象コードを 読むgroovyコード AquesTalkDa.dll
6.
ファイル構成(GConsole) LTHudson/standalone gcon_jnatest.groovy
(UTF-8) AquesTalkByJNA.groovy (UTF-8) lib groovy-all-1.7.5.jar jna.jar platform.jar AquesTalkDa.dll dll/音声タイプ/AquesTalkDa.dll
7.
で、ソースとDLLの位置同じにして書いてみた
<呼び元( gcon_jnatest.groovy )> String talk = "ゆっくり'/して'いってね。したからく'るぞ、きをつ'けろ" ClassLoader parent = ClassLoader.getSystemClassLoader() CompilerConfiguration config = new CompilerConfiguration([ sourceEncoding:'UTF-8' //equals -Dgroovy.source.encoding=UTF-8 ]) GroovyClassLoader loader = new GroovyClassLoader(parent,config) new File("$LIBPATH").eachFileRecurse{ loader.addURL it.toURL()} fname="$SRCPATH/AquesTalkByJNA.groovy" File fn = new File(fname) def source = new GroovyCodeSource(fn,"UTF-8") //equals - Dfile.encoding=UTF-8 def groovyClass = loader.parseClass(source) def groovyObject = groovyClass.newInstance() groovyObject.setProperty("args", [talk]as Object[]) groovyObject.invokeMethod("run", [] as Object[])
8.
<呼び先(AquesTalkByJNA.groovy )> String talk=args[1] //
AquesTalkDa.dll の宣言関数 interface Aques extends Library { Aques INSTANCE = Native.loadLibrary("AquesTalkDa", Aques.class) Pointer AquesTalkDa_Create() void AquesTalkDa_Release(Pointer hMe) int AquesTalkDa_PlaySync(String koe, int iSpeed) Pointer AquesTalkDa_Play(Pointer hMe, String koe, int iSpeed, Pointer hWnd, int msg,int dwUser) int AquesTalkDa_IsPlay(Pointer hMe) } // ハンドラの作成 Pointer data = Aques.INSTANCE.AquesTalkDa_Create() // 再生 Aques.INSTANCE.AquesTalkDa_Play(data, talk, 100, null, 0, 0) Thread.sleep(6000) //★ 再生時間の確保 // ハンドラの開放 Aques.INSTANCE.AquesTalkDa_Release(data)
9.
でも、NG!(DLLが見つからない) WebStartで実行するアプリって、
カレントディレクトリはデスクトップ dllをデスクトップに置くって微妙・・・。 Javaはカレントディレクトリって変えられないよね~ <呼び先(AquesTalkByJNA.groovy )> String talk=args[1] //DLL検索パスの明示 NativeLibrary.addSearchPath(“AquesTalkDa”,DLLPATH) //★ // AquesTalkDa.dll の宣言関数 public interface Aques extends Library { Aques INSTANCE = Native.loadLibrary("AquesTalkDa", Aques.class) ★)DLLの検索ディレクトリを指定!(DLL位置も動的指定可能!)
10.
で見事再生!<デモ有> (ランダムで音声も変更できるよ) AquesTalk の制限事項
全角ひらがな、カタカナのみ <不正文字がある時は再生しない 「‘」でアクセント、1ワード1個(/ 、。?で区切り) JNA制限事項 NativeLibrary.addSearchPath は先宣言のみ有効 =>同一ClassLoaderでは繰り返し変更は不可 <残念!
11.
ならJenkins(旧Hudson)のジョブ上でも
しゃべらせられるかも?
12.
Jenkins(旧Hudson)とは OSSのCI(Continuous Integration)ツール
実行は [ java –jar jenkins.war]で手軽! Groovyスクリプトも使えます HudsonTerminal Plugin Go-kon plugin とか拡張Pluginも豊富です Jenkins CLI というコマンドラインIFもあります java -jar jenkins-cli.jar [-s JENKINS_URL] XX.groovy JENKINS. groovyコード CLI
13.
ファイル構成(Hudson.CLI) LTHudson/hudson-mst ・・Hudsonの実行フォルダ
hudson.bat ・・hudson起動BAT hudson-cli.bat ・・hudson-cli用BAT Job ・・実行されるジョブ Script gcon_jnatest.groovy (UTF8 =>SJISで保存) AquesTalkByJNA.groovy(UTF8) lib libjna jna.jar platform.jar dll 音声タイプ/AquesTalkDa.dll War/WEB-INF/hudson-cli.jar War/WEB-INF/lib/groovy-all-1.6.0.jar War/WEB-INF/lib/groovy-all-1.7.5.jar
14.
BATの中身 Hudson.bat ・・Hudson起動バッチファイル set JAVA_HOME=C:¥opt¥jdk set
CMD_OPTION=--httpPort=38080 --httpsPort=38081 --ajp13Port=-1 %JAVA_HOME%/bin/java -XX:MaxPermSize=256m -Xms256m -Xmx256m -jar hudson.war %CMD_OPTION% Hudson-cli.bat ・・Jenkinsに接続するプロセスBAT cd /d %0¥.. set JAVA_HOME=C:¥opt¥jdk set CMD_URL=http://127.0.0.1:38080 set CLASSPATH=./war/WEB-INF/*;./script/lib/* %JAVA_HOME%/bin/java -cp "%CLASSPATH%" hudson.cli.CLI -s %CMD_URL% groovy %* %CMD_URL%
15.
手間取りましたが動きました!
<デモ有>
17.
何点か注意点
このジョブはgrooby-all 1.7系でしか動きません(要差替え) Jenkins同梱のgroovy-all.jarは1.6.0 new GroovyCodeSource(fn,“UTF-8”) を使えるのは、1.7系から 1.6.0だとスクリプト上のインナークラス宣言がエラーが出てしまう groovy-all-1.7.5.jar なら問題なく動く!(既存も今の所問題なし) core/src/main/java/ hudson.cli.GroovyCommand で下記のようなコード実装が・・ ジョブ上から呼べるGroovyスクリプトがOSエンコードに依存してしまう WinだとSJIS(MACはUTF8なので対処は要らないけど・・) 日本語を扱ったり、日本語コメントがあると動かないということ Command直の実行groovyをSJIS保存で一応回避は出来るけど・・。 Binding binding = new Binding(); binding.setProperty("out",new PrintWriter(stdout,true)); GroovyShell groovy = new GroovyShell(binding); groovy.run(loadScript(),“RemoteClass”,~ 今後のWin対応(UTF8指定可能対応)期待したいな~ Goovy-all-1.7.5.jar に本体のjarが差し替え期待!
18.
資料リンク
Jenkins(旧Hudson)公式サイト https://wiki.jenkins-ci.org/display/JA/Jenkins 使用Plugin setEnv Plugin BatchTask Plugin Go-kon plugin AquesTalk公式サイト http://www.a-quest.com/products/aquestalk.html 使ったライブラリ AquesTalk Win 拡張声種ライブラリ(Win用) 検証コードのURL https://github.com/kimukou26/hudsontest LTHudsonのフォルダ
19.
こんな事も出来ます(1) 3回同じJOBを3回実行して次のJOBへ進む
JenkinsCLI + HttpUnit(jar) のコンボで Groovyファイル内で下記のURLを呼ぶとJOB動きます $JENKINS_URL/job/$JOB_NAME/build?delay=30sec 次の繰り返しJOB 予約 3回繰り返して先に進む JOB例
20.
こんな事も出来ます(2) GradlePluginを入れると
GriffonのコンパイルもJOBで出来ます! Grails 用は Grails Pluginが有ります!
21.
気づいた事メモ 1. ビルド履歴を全部消す
1. $JENKINS_HOME/Jobs/$JOB_NAME/builds の中身を消す 2. $JENKINS_HOME/Jobs/$JOB_NAME/nextBuildNumber を消す プラグインの手動インストール $JENKINS_HOME/plugin にいれる Jenkinsを再起動する Jenkins.warのアップグレード $JENKINS_HOME に jenkins.warを置く Jenkinsを再起動 Warフォルダ配下は再作成される (groovy-all-1.7.5.jar も消されちゃいます)
Download