云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云主机_网站建设seo视频_

小七 141 0

为Travis CI工作人员提供完整的CI/CD管道

在今天的帖子中,我们将讨论如何使用Travis CI为Cloudflare工人构建一个CI/CD管道。如果您还不知道,Cloudflare Workers允许您在我们所有165个数据中心中运行Javascript,并且它们可以在大约30秒的时间内进行全球部署。在这里了解更多。在我们开始之前有几个步骤。我们需要一个我们想要部署的工作脚本,一些可选的脚本单元测试,一个无服务器.yml通过Serverless框架部署的文件,一个.gitignore文件来忽略node\u modules文件夹,最后是一个。特拉维斯·伊梅尔配置文件。所有这些文件都将驻留在同一个GitHub存储库中,该存储库应该具有最终布局例如:-----worker.js----- 无服务器.yml-----试验. 工人-测试.js-----节点_模块----- 包.json-----包装-锁定.json----- .特拉维斯·伊梅尔-----.gitignoreWorker脚本在最近的一篇文章中,我们讨论了一种测试工人的方法。我们将在这里重用这个方法来测试一个非常简单的Worker脚本,它只返回helloworld!在回应的主体部分。我们会给我们的工人起名worker.js.addEventListener('fetch',event=>{事件响应(手柄请求(事件请求))})异步函数handleRequest(请求){返回新响应('Hello World!')}测试我们将按照单元测试博客讨论的方法创建一个测试用例发布前(异步函数(){对象.分配(全局,新(require('@dollarshaveclub/cloudworker'))(require('fs').readFileSync('工人.js','utf8'))。上下文)})//更换工人.js这里有你的工人档案的名字const assert=require('assert')描述('工人测试',函数(){it('Response with a body that say hello',异步函数(){var url=新的url('https://travis.example.com')var req=新请求(url)var res=等待处理请求(req)var body=等待res.文本()断言相等(身体,"你好,世界!")})})然后我们会更新json.json包要包含的文件:"脚本":{"test":"摩卡"}并使用npm安装mocha安装mocha—使用npm install@dollarshaveclub/cloudworker—save dev和cloudworker-dev.serverless.ymlNext,我们需要一个无服务器.yml文件以部署工作进程。这是一个配置文件,Serverless框架使用它将无服务器应用程序部署到受支持的提供商。不久前我们成为了一个提供者,我们将使用这个框架来部署我们的工作人员例如,我们将在Travis配置中运行sls deploy命令,并将无服务器.yml为我们调配工人。无服务器.yml将引用ENV变量,我们将在邮政票据:可以使用任意脚本进行部署。在本例中,我们使用的是无服务器框架,因为我们已经与它们集成在一起,而且入门是直截了当。我们的无服务器.yml会看的比如:服务:名称:travis example供应商:名称:cloudflare配置:帐户ID:${env:CLOUDFLARE_帐户_ID}区域标识:${环境:CLOUDFLARE_ZONE_ID}插件:-无服务器cloudflare工人功能:从travis部署:名称:travis部署的工作人员脚本:工人确保同时安装了Serverless框架和Cloudflare Workers插件,其中npm install--save Serverless和npm install--save Serverless Cloudflare-工人.travis.ymlbow你会看到决赛的。特拉维斯·伊梅尔我们会仔细检查it.语言:节点节点:-"节点"部署:-提供程序:脚本脚本:sls deploy跳过清除:真开:分支机构:主在潜入水中之前,特拉维斯在部署方面有一些很好的资源节点.js项目在这里。虽然这不是严格意义上我们要做的,但这是一个很好的起点重点。所以这是怎么回事。特拉维斯·伊梅尔卑鄙?首先,我们要告诉Travis CI使用最新的节点.js图像(您可以选择指定)。然后,我们指定要运行的命令来实际执行部署,sls deploy,但仅当主分支涉及到构建时。Travis将为我们运行npm测试,因为它是任何节点.js项目,它将执行我们的单位测试。测试skip_cleanup:true可防止在测试和部署过程中与git发生任何冲突。正在配置TravisFinally!我们快到了。设置Travis CI非常简单。一旦创建了帐户,请确保授权Travis访问包含worker、您的测试的repo。特拉维斯·伊梅尔,还有你的。无服务器.yml.Nextup正在向构建中添加环境变量。在本例中,它将是我们的CLOUDFLARE_AUTH_电子邮件和CLOUDFLARE_AUTH_密钥值,Serverless将获取这些值来验证API请求。我还添加了CLOUDFLARE_ACCOUNT_ID和CLOUDFLARE_ZONE_ID,正如我们在中引用的那样无服务器.yml. 最后,我设置SLS_DEBUG=*,只是为了捕捉来自没有服务器。你可以用这里概述的各种方式添加这些ENV变量。在这个例子中,我们将直接在Travis用户界面中添加它们,这样它们就不会出现在repo中的任何地方(因为其中一些是敏感的)变量。完成!现在PRs将触发一个测试构建,以及一个主测试构建和一个部署的合并!去试试吧。就这样!你觉得这个有用吗?请让我们知道,如果我们可以使这个教程更好。谢谢。