趣文网 > 作文大全

利用Travis CI和Github Pages持续集成发布Scala.js Web应用

2020-12-02 17:20:02
相关推荐

我们知道持续集成和发布(CI/CD)是时下开发运维界的香饽饽。每一个团地都是使用CI/CD来极大的提高开发效率,加速项目的迭代和部署上线。然而还有很多开发者还因为CI/CD的初始比较繁琐而望而却步。本文虫虫给实例大家介绍一个最简单的CI/CD流程,实现代码撰写编译部署一栈式流程,该流程涉及免费版的Travis CI,Github pages,和Scala.js,实现Scala.js应用程序到Github pages的持续部署。

概述

Scala.js

Scala.js是一款具有良好生态系统,功能齐全,支持丰富的Scala To JS 代码编译器。Scala.js支持全部Scala语言特性,通过Scala.js,可以实现从前端到后端的Scala全栈Web开发。

Travis CI

Travis CI是一款开源的持续集成CI系统,和其他CI系统比较,Travis CI提供在SaaS云版本和GitHub项目可以无缝集成,构建和测试GitHub上托管的项目。对Github 公开项目可免费使用,直接通过Github账号登陆和配置使用。我们只需要接入自己的GitHub账户,提供相关权限并根据项目的实际要求更新travis.yaml文件即可。

环境安装

所有环境需要Node.js和sbt,需要安预先安装Node.js和sbt,另外需要Github帐户。

centos 下可以可以先将khara-nodejs-epel-7.repo和bintray-sbt-rpm.repo 添加到/etc/yum.repos.d,然后通过yum安装

yum install nodejs nodejs-npm sbt

项目实战

创建项目

运行以下命令:

sbt new scala/hello-Chongchong.g8

该命令将以"hello-world"模板创建一个创建一个Scala项目。

我们也可以从头开始手动创建Scala.js项目,可以执行下面的步骤:

创建文件project/plugins.sbt,并通过添加以下代码,添加Scala.js sbt插件:

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.29")

我们要设置基本项目,并在sbt构建文件中启用此插件。在build.sbt中添加以下行(在项目根目录中):

enablePlugins(ScalaJSPlugin)

scalaJSUseMainModuleInitializer := true

运行项目

要运行该项目,只需启动sbt并调用运行任务:

sbt run

结果如下:

HTML集成

为了加载和启动创建的JS,我们需要一个HTML文件来调用JS。我们在项目的根目录中创建文件夹source。将所有源文件(html,图像,脚本,样式)放在此文件夹中,同时我们也手动创建一个index.html文件,内容如下:

Scala.js CI实例

创建Github仓库

在项目的根文件夹中添加.gitignore文件,排除下面这些文件:

*.class

*.log

.cache/

.history/

.lib/

dist/*

target/

lib_managed/

src_managed/

project/boot/

project/plugins/project/

生成仓库,并推送到github

git init

git add . & git commit -m init

git push

配置Travis CI

使用github账号授权并登陆Travis CI,选择需要集成的一个公共仓库,并激活:

github仓库设置页,给其选择pages源,此处我们选择gh-pages分支,开启pages

在github个人设置Developer settings/personal access token,配置权限部分生成token,复制该值。

跳转到在Travis页面上,具体仓库任务的设置。 在"环境变量"下,输入GH_TOKEN作为名称,并将上面保存的token填写的value字段, 单击添加以保存它。

前面我们在项目根目录下创建source文件夹,将应用程序的静态文件放入其中。

为了生成静态文件,Travis CI需要将公共文件夹的内容复制到项目的根目录,并将其提交。下面我们将创建一个脚本deploy.sh实现将静态文件移动到公用文件夹。

if [ ! -d "public" ]; then

mkdir public

fi

cp -fr source/* public/

if [ ! -d "public/js" ]; then

mkdir public/js

fi

sbt fastOptJS

cp target/scala-*/*.js public/js/

添加并提交deploy.sh文件到仓库,以在Travis CI上生成.travis.yml文件,并将其添加并提交到仓库库中,以使用以下内容配置Travis CI:

language: scala

jdk: openjdk8

scala:

- 2.12.10

branches:

only:

- master

script:

- bash deploy.sh

deploy:

provider: pages

skip-cleanup: true

github-token: $GH_TOKEN

keep-history: true

on:

branch: master

local-dir: public

Travis CI会自动编译,部署后,成功后:

现在,切换到仓库的gh-pages分支,就可发现Travis机器人自动发布生成的页面:

我们切换到项目对应的Pages页,F12,debug模式下查看页面的控制台输出:

OK,如上图,我们的Scala.js应用程序已部署在Github Pages上了!

注意,此处我们为了方便,只是搞了个简单的控制台打印hello,ChongChong,并未在html页面中显示元素,所以直接浏览器打开是空白页面,大家可以在此基础上在页面添加内容。scala源码为:

object Main extends App {

println("Hello, ChongChong!")

}

Travis CI部署了Scala.js应用

总结

本文我们以简单scala.js例子说明了,通过Travis CI在Github pages上实现持续集成和部署的实例。主要讲述了Travis CI配置以及和Github仓库的交互,持续集成一栈式迭代发布的流程。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

好人好事作文300字左右 二年级写景的作文 批判性思维作文 初一下册英语作文必考 声音的作文 可爱的小兔子的作文 记事作文 潮州游记作文 青海湖作文300字 老爸作文 什么是作文 晨风中的身影作文 夸一夸我的同学作文 亲人的关爱作文300字 我就是我作文结尾 五年级语文三单元作文 描写悬空寺的作文 扫黄打非作文800字 堆雪人作文二年级 烧菜作文300字 身边的风景作文600字 快乐如此简单作文 表示母爱的作文 信封格式作文图片 红楼梦的作文 家乡的小桥作文 作文什么里的微感动 关于小水滴的作文 原来什么一直在我身边作文600字 钓鱼的作文500字