第一步,解压缩一个 Hook。Hook 可以用 Java 来写,也可以用 js 来写,它只是一个 暴露的服务,通过一个预定义的端口来提供服务。然后在服务里想让它做什么都可以,比如 想在脚本里执行一些记录日志、安全审核、发送警告等操作,都是可以的。我们就可以把执 行开发部署指令写到 Hook 中。在帮助文档中有提供一个已经写好的 JavaScript Hook。 我们将 Gitlab 里面的 Hook 端口设置为 8080。写好之后往下拉,有个叫 Trigger 的触发器,勾选这个触发器下面的选项,那么就可以用选项对应的方式执行上面写 的脚本的操作。比如选择 push event。让仓库在发生 push 时自动调用 Hook 来引起 CI/ CD 流程。给大家看我已经写好的一个脚本,这个是用 Node.js 写的。它的核心逻辑是 对 3002 端口提供了监听,而监听里面只需要填一个路径,就是 Hook 脚本暴露出来的路 径。每次调 CI 的时候,它都会执行如下图表述的逻辑,一共两步:第一步去 Gitlab 仓库拉 取代码(这步可有可无,你也可以自己添加一些其它业务逻辑),第二步调 CI/CD 流程。从这个逻辑里可以看出,第二步调 CI/CD 流程时执行了 workbench.cicd.js 这个脚本。 这个脚本会完成从云开发平台控制台里面点击部署,然后从部署到打包代码,再把代码部署 到云开发平台的一系列流程。 在帮助文档中,我们可以看到上面演示的关于 CI/CD 集成的步骤,第一步下载 CI/CD hook,它有两个文件:第一个是 workbench.js 脚本,第二个是 package.json 一个依 赖。
测试 首先在本地把 server.js 脚本跑起来。这就是一个小型的服务器,它为本地开启这样一 个端口,使得 Web Hook 执行 push 操作的时候可以通过这个端口调用服务。 然后点击 push event,发起一次发布。那么可以看到脚本已经开始执行 CI/CD 的工 作了,可以看到他自动执行,跟从控制台里去点部署后的操作是一样的。 当这个域名它绑到 API 网关的二级域名,就说明部署成功了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。