ScalaアプリケーションのテストとHerokuへのデプロイ
この例では、GitLab CI/CDとSBTを使ったScalaアプリケーションのインテグレーションをデモしています。サンプルプロジェクトを表示またはフォークして、過去のCIジョブのログを見ることができます。
.gitlab-ci.yml
ファイルをプロジェクトに追加します。
CIを起動するために、リポジトリのルートに以下の.gitlab-ci.yml
:
image: openjdk:8
stages:
- test
- deploy
before_script:
- apt-get update -y
- apt-get install apt-transport-https -y
## Install SBT
- echo "deb http://dl.bintray.com/sbt/debian /" | tee -a /etc/apt/sources.list.d/sbt.list
- apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
- apt-get update -y
- apt-get install sbt -y
- sbt sbtVersion
test:
stage: test
script:
- sbt clean coverage test coverageReport
deploy:
stage: deploy
script:
- apt-get update -yq
- apt-get install rubygems ruby-dev -y
- gem install dpl
- dpl --provider=heroku --app=gitlab-play-sample-app --api-key=$HEROKU_API_KEY
上記の構成では
-
before_script
はSBTをインストールし、使用中のバージョンを表示します。 -
test
ステージでは、SBT を実行してプロジェクトをコンパイルし、テストします。- sbt-scoverageは、テストカバレッジを測定するために SBT プラグインとして使用されます。
-
deploy
ステージでは、dplを使用してプロジェクトを自動的にHerokuにデプロイします。
他のバージョンのScalaやSBTを使用するには、build.sbt
で定義します。
ジョブ内のテストカバレッジの表示
設定 ➔パイプライン➔ カバレッジレポートプロジェクト設定にCoverage was \[\d+.\d+\%\]
正規表現を追加して、ビルドトレースからテ ストカバレッジ率を取得し、ジョブとともに表示します。
このオプションを表示するには、パイプラインが有効になっている必要があります。
Herokuアプリケーション
Herokuアプリケーションが必要です。ダッシュボードから作成できます。.gitlab-ci.yml
ファイルのgitlab-play-sample-app
をアプリケーション名に置き換えてください。
Heroku APIキー
HerokuのAPIキーは、アカウントで調べることができます。プロジェクト➔キー付き変数 HEROKU_API_KEY
で、この値で保護された変数を追加します。