Test and deploy a Scala application to Heroku
原文:https://docs.gitlab.com/ee/ci/examples/test-scala-application.html
Test and deploy a Scala application to Heroku
该示例演示了使用 SBT 将 GitLab CI / CD 与 Scala 应用程序集成. 您可以查看或创建示例项目,并查看其过去的CI 作业的日志.
Add .gitlab-ci.yml
file to project
以下.gitlab-ci.yml
应该添加到存储库的根目录中以触发 CI:
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.
您可以通过在build.sbt
定义其他版本的 Scala 和 SBT 来使用它们.
Display test coverage in job
在设置➔管道➔覆盖率报告项目设置中,将Coverage was \[\d+.\d+\%\]
添加Coverage was \[\d+.\d+\%\]
正则表达式,以从构建跟踪中检索测试覆盖率并将其与作业一起显示.
必须启用管道才能显示此选项.
Heroku application
需要 Heroku 应用程序. 您可以通过仪表板创建一个. 用您的应用程序名称.gitlab-ci.yml
文件中的gitlab-play-sample-app
.
Heroku API key
您可以在帐户中查找 Heroku API 密钥. 使用键HEROKU_API_KEY
在项目➔变量中添加具有此值的受保护变量 .