Salesforce的持续集成-CI Using SFDX

阅读时长:15min

总述

Part 1 什么是持续集成


持续集成 Continuous Integration (CI):
频繁的(一天多次的)将所有开发者的工作合并到主干上

持续集成是一种软件开发的实践,适合团队协作的项目。鼓励团队的每个开发人员经常集成自己的开发到项目。
而每一次的集成都会通过自动化的构建来进行验证。(当项目代码有变更时,立即进行构建和测试并反馈运行结果)
我们可以根据测试结果,确定新代码是否可以和原有代码正确的集成在一起。

Part 2 准备工作


Part 3 Salesforce端创建Connected App


此时certificates文件夹下会生成以下三个文件:server.crt,server.csr,server.key

创建成功之后,会生成一个Consumer Key,这个key是之后Travis CI端要验证使用的。

Part 4 CI端解密私钥,创建流程


server.key不可以随便暴露出去,所以我们要进行一道加密程序,之后在Travis CI使用验证的时候,再进行一道解密程序。

   //打开.travis.yml文件,把类似如下代码删去:
- openssl aes-256-cbc -K $encrypted_0db5e9c4fee8_key -iv $encrypted_0db5e9c4fee8_iv
   -in assets/server.key.enc -out assets/server.key -d
  //把刚才生成的server.key文件放在assets文件夹中, 
travis login --org
  //登录Travis CI 
travis encrypt-file assets/server.key assets/server.key.enc --add
  //使用Travis CI CLI 对文件server.key进行加密,生成文件erver.key.enc在同一个文件夹中。
  //手动删去server.key文件,不过经常使用的方式是在.gitignore文件中,添加一下文件server.key

备注:执行加密程序后,.yml文件会自动生成一个解密程序在文件的头部。

在Travis CI配置一下环境变量 CONSUMERKEY是在Salesforce端配置Connected APP时候生成的 USERNAME 是指DevHub中你的用户名,即org登录名

travis env set CONSUMERKEY <替换connected app consumer key>
travis env set USERNAME <替换your Dev Hub username>

至此使用SFDX配置了CI的流程,具体的执行内容会写在.yml文件中。

小结

  1. 本地生成SSL Certificate
  2. Salesforce端利用创建的SSL Certificate创建Connected App,并生成consumer key
  3. CI工具利用私钥和consumer key进行双重验证,自动自行yml文件中预设的脚本进行自动化的Unit test. 如下图所示:

structure