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:

  1. image: openjdk:8
  2. stages:
  3. - test
  4. - deploy
  5. before_script:
  6. - apt-get update -y
  7. - apt-get install apt-transport-https -y
  8. ## Install SBT
  9. - echo "deb http://dl.bintray.com/sbt/debian /" | tee -a /etc/apt/sources.list.d/sbt.list
  10. - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
  11. - apt-get update -y
  12. - apt-get install sbt -y
  13. - sbt sbtVersion
  14. test:
  15. stage: test
  16. script:
  17. - sbt clean coverage test coverageReport
  18. deploy:
  19. stage: deploy
  20. script:
  21. - apt-get update -yq
  22. - apt-get install rubygems ruby-dev -y
  23. - gem install dpl
  24. - dpl --provider=heroku --app=gitlab-play-sample-app --api-key=$HEROKU_API_KEY

在以上配置中:

  • before_script将安装SBT并显示正在使用的版本.
  • test阶段执行 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项目➔变量中添加具有此值的受保护变量 .