はじめに

Java/Spark プロジェクトの Gradle を利用したビルド/デプロイについて、私が試したことをまとめたものです。 (ここで言うSparkは、分散処理ライブラリのApache Sparkではなく、Java の Sinatra ライクな Microframework のSparkのことです)

目次

  1. Hello World アプリ
  2. jade テンプレートエンジン
  3. Grunt/bower による Web パッケージのビルド
  4. 付録 A. TravisCI によるビルド
  5. 付録 B. Gradle で docker build
  6. 付録 C. TravisCI から DockerHub へ docker push

各章でのソースコードは Commits · kaakaa/gradle-frontend-boilerplate から確認できます。

環境

付録 A. TravisCI によるビルド

概要

Github への Push を契機にTravis CIでビルドを実行し、実行バイナリの zip/tar ファイルを Github ページへリリースする。

準備

下記を実施しておく。

ビルドスクリプト

プロジェクトのルートで下記travisコマンドを実行し、.travis.ymlという Travis CI のビルド設定ファイルを作成する。

> travis init
> travis setup releases

対話的にプロジェクトの情報を入力していくだけで、.travis.ymlがほぼできあがります。 (自分で.travis.ymlを書いても問題無いです)

language: java  // (1) - Javaビルドの設定
jdk:
- oraclejdk8
script: "./gradlew build"  // (2) - ビルドコマンド
deploy:  // (3) - デプロイ設定
  provider: releases
  api_key:
    secure: ${GITHUB_TOKEN}
  file:  // (4) - GithubのReleaseページにPushするファイル
    - "./build/distributions/gradle-frontend-boilerplate-1.0-SNAPSHOT.tar"
    - "./build/distributions/gradle-frontend-boilerplate-1.0-SNAPSHOT.zip"
  on:
    repo: kaakaa/gradle-frontend-boilerplate
    tags: true  // (5) - tag付きのコミットのみデプロイが行われるようにする

(1) Java ビルドの設定

travis initコマンドで Java プロジェクトを選択すると、このように生成される。 デフォルトでは Java のバーージョンに JDK6,7 が指定されているのでoraclejdk8にしておく。

(2) ビルドコマンド

Travis で実行するビルドタスク指定する。

(3) デプロイ設定

travis setup releasesコマンドで作成される。

(4) Github の Release ページに Push するファイル

ここで指定したファイルが、Github のリリースページにダウンロードできる形で公開される。 今回は、gradle assembleDistの成果物である zip/tar ファイルがリリースされるようにした。

(5) tag 付きのコミットのみデプロイが行われるようにする

Push するたびにリリースされるのも辛いので、タグ付きコミットのみデプロイが行われるようにする

comments powered by Disqus