目的
GitActionsがプレビュー版となったため、mavenビルドをgitに行ってもらい、WebAppsにデプロイする
1:アプリ準備
まずは、Maven + TomcatのJavaアプリケーションを作成する
mavenは以下のように記述した
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<RESOURCEGROUP_NAME>DeployTest</RESOURCEGROUP_NAME>
<WEBAPP_NAME>MavenJsptest</WEBAPP_NAME>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>ROOT</finalName> <!-- Azure default root pass -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>WEB-INF/lib/javax.servlet-api-3.0.1.jar</packagingExcludes>
</configuration>
</plugin>
</plugins>
</build>
特に詰まったのが、finalNameの部分で、これはmvn install で生成されるwarファイル名の名称。
WebAppsがROOT以下をデフォルトで参照しにいくため、これ以外の指定だとエラーが発生していた。
※もし、別の名前でもエラーを起こさない方法があれば教えていただきたいです!
アプリを作り終えたら、GitHubにプッシュ
2:WebApps設定
App Service Plan および WebAppsを作成(Javaの環境はアプリに合わせる)して、「デプロイセンター」を選択し、GitActionや作成したアプリのリポジトリを選択。
最後にyamlが出力されるが、この中を見てみると、Javaのバージョンの選択およびmvn clean installしていることがわかる
3:確認
ここまでやれば、GitHubのアクションが動作していることが確認できる。
問題がなければ、デプロイされ、正常にアクセスすることができる
感想
JenkinsやAzure Pipelineも素晴らしいツールだが、設定や構築が少し面倒なのが気になっていたため、今回のGitActionsがGitHubとAzureさえ登録すれば構築不要で使えたので、とても楽だった。
今回はyamlも特に編集しなかったがカスタマイズすることで(単体テストの実行など)より効果的な開発ができると思う。