前言
在现代前端开发中,我们经常会用到 CI/CD 工具来进行自动化构建、测试和部署等工作。AWS CodePipeline 是目前比较流行的 CI/CD 工具之一,它提供了很多内置的 action,但是如果需要定制化的操作,就需要使用自定义 action。而 lard-codepipeline-custom-action 包就是帮助我们简化自定义 action 的开发流程的工具包。
安装
我们可以通过 npm 来安装 lard-codepipeline-custom-action 包,具体命令如下:
npm install lard-codepipeline-custom-action
使用
创建 custom action
首先,我们需要定义我们的 custom action。在 AWS CodePipeline 中,一个 action 通常包括以下几个部分:
- category:表示该 action 属于哪个分类,AWS 有几种内置分类,比如 source、deploy、build 等等。自定义 action 时,最好选择自定义 category。
- provider:表示提供该 action 的服务商。自定义 action 时,可以选择自定义 provider。
- version:表示该 action 的版本号。
- inputArtifactDetails:表示输入 artifact 的详细信息,这些信息包括 artifact 名称、类型等。
- outputArtifactDetails:表示输出 artifact 的详细信息,这些信息包括 artifact 名称、类型等。
- settings:表示该 action 的一些配置信息,比如需要的参数等。
定义 action 的代码示例:
-- -------------------- ---- ------- ----- - --------------------- --------------------- -------------------- ---------- - - ------------------------------------------- ----- -------- - --- ---------------------------------- --- -------- -------------- ----- -------- - --- ---------------------------------- --- -------- -------------- ----- ------- - --- --------------------------- ----- -------------------- - - - ----- -------------------- ----- ------------------- - -- ----- --------------------- - - - ----- --------------------- ----- -------------------- - -- ----- -------- - - - ---- ------------- ----- --- ------- --- ----- --------- --------- ---- -- - ---- ------------- ----- --- ------- --- ----- ---------- --------- ----- - -- ----- -------- - - --------- --------- --------- --------- -------- -------- --------------------- --------------------- ---------------------- ---------------------- --------- --------- ------ -------------------- ---- ----- -------- -------- --------- ---- -- - --------------- ------ -- ------------- ---------------------- -------- ----------------------- --------- ------------------------ ---------- ------------------- ----- - --
其中,modes 表示该 action 支持哪些模式,ActionMode 类包含以下几种:
- ActionMode.Source:该 action 作为源阶段的 action。
- ActionMode.Deploy:该 action 作为部署阶段的 action。
- ActionMode.Custom:该 action 作为自定义阶段的 action。
注册 action
定义好 action 之后,我们需要将其注册到 AWS CodePipeline 中。具体的注册过程比较繁琐,但是可以通过 lard-codepipeline-custom-action 包中的 registerAction 函数来简化。
const { registerAction } = require('lard-codepipeline-custom-action'); registerAction(myAction);
调用 action
在 AWS CodePipeline 中调用自定义 action 时,需要执行一个 Shell 脚本,该脚本将调用我们的自定义 action。lard-codepipeline-custom-action 包提供了一些工具函数,可以方便地生成 Shell 脚本。
const { generateShellScript, generateActionConfig } = require('lard-codepipeline-custom-action'); const actionConfig = generateActionConfig(myAction); const shellScript = generateShellScript(actionConfig); console.log(shellScript);
执行以上代码,会生成一个 Shell 脚本,可以将其复制到 AWS CodePipeline 中的自定义 action 中使用。
总结
通过 lard-codepipeline-custom-action 包,我们可以方便地定制化自己的 AWS CodePipeline 自定义 action。希望本文对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e581e8991b448e079f