SVNコミット時、JenkinsでWildFlyに自動デプロイ
SVNコミット時、ビルド、デプロイタスクを自動化したい
特に目新しい話ではありませんが、掲題の内容を実現する記事が見当たらなかったので、その方法をメモします。
実行環境には、Java、Maven、Jenkins、Subversion、WildFlyが適切にインストールされているものとします。
環境
以下の環境で試しています。
CentOS 7.3
Java 1.8
WildFly 10.0.0.Final
Maven 3.3.9(WildFly Maven Plugin 1.1.0.Finalを使うには、Maven 3.1.1以上が必要です)
WildFly Maven Plugin 1.1.0.Final
Jenkins 2.46.3
Subversion 1.7.14
WildFly Maven Pluginの導入
mavenからWildFlyへデプロイするために「WildFly Maven Plugin」を導入します。
以下は、pomの記述例です。
<build>
<plugins>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.1.0.Final</version>
<configuration>
<hostname>WildFlyが稼動しているサーバのホスト名</hostname>
<port>WildFlyの管理コンソールのポート番号</port>
<username>管理コンソールにログインするためのユーザ名</username>
<password>管理コンソールにログインするためのパスワード</password>
</configuration>
</plugin>
</plugins>
</build>
hostnameのデフォルトは「localhost」なので、同じサーバ上でJenkinsとWildfFlyを動作させている場合、指定する必要はないと思います。また、portのデフォルトは「9990」なので、こちらも変更していなければ指定は不要です。
Configの詳細はここで確認できます
Jenkinsでジョブを作成
SVNコミット時に実行するジョブを作成します。
ジョブで行うことは、SVNからソースをチェックアウト、mavenでビルド、デプロイです。
以下は、ジョブの設定例です。
ソースコード管理
ビルド・トリガ
SVNからジョブを呼び出すために必要な認証トークンを設定します。
トークンは[Jenkins]>[ユーザ名]>[設定]>[APIトークン]から確認できます。
ビルド
まず、「clean install」でビルドして、「wildfly:deploy」でデプロイしています。
SVNのフックスクリプトを作成
SVNコミット時に、上記のジョブを実行するために「post-commit」スクリプトを作成します。
作成したスクリプトに実行権限がないと、
post-commit hook failed (exit code 255) with no output.
みたいなエラーが出るのでご注意を。
$ cd [リポジトリのルートディレクトリ]/hooks/
$ vi post-commit
#!/bin/sh
api_token=TOKEN_NAME
curl https://[ビルドトリガで確認したURL]?token=$api_token
$ chmod 774 post-commit
完了
以上で、SVNにコミットすると、JenkinsでビルドとWildFlyへのデプロイが自動的に行われるようになりました。
Author And Source
この問題について(SVNコミット時、JenkinsでWildFlyに自動デプロイ), 我々は、より多くの情報をここで見つけました https://qiita.com/ms22912/items/708a0e6a6397fd19b8b3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .