在此博客中,我将带您进行逐步的过程,使用github操作为mulesoft anypoint平台集成项目与GitHub作为项目存储库来设置CI/CD工作流程。
首先,您需要在Anypoint Studio中创建示例Mulesoft 4应用程序。在任何点工作室中运行并测试应用程序。将项目检查到GitHub中以进行自动构建,并部署到任何新代码检查或对现有代码的更新。
GitHub动作先决条件
- 回购访问
- Anypoint平台访问
- 要将应用程序部署到CloudHub Anypoint环境ORG/业务组:环境,客户ID和客户端秘密凭据是
mulesoft应用程序配置
所有mulesoft 4应用程序均符合Maven。为了有效地使用Maven进行构建和开发,应适用于DevOps中CI/CD启用的每个项目。
Maven Project Pom.xml配置:mulesoft项目中的每个pom.xml文件都应具有此配置以启用CI/CD。
Munit Maven插件配置:这种配置有助于运行MUNIT测试,并在允许成功的构建和部署之前验证最低测试覆盖范围。
<插件> <版本> $ {munit.version} <阶段>测试 <目标> <目标>测试目标> <目标>覆盖范围报告 目标> <覆盖范围> <格式> 格式> |
确保您拥有访问Mulesoft Enterprise存储库以在GitHub Action中执行Munit测试的许可证。有关进一步的文档和指导,点击这里。
mule maven插件配置:此插件用于使用Maven部署目标基于CLI的应用程序部署。
以下配置是部署到CloudHub环境的示例:
<插件> <版本> $ {mule.maven.plugin.version} <密码> $ {passwass} <环境>沙盒环境> <区域> us-east-2 <工人> 1 |
$ {}之间出现的变量是使用秘密执行GitHub动作执行期间的外部化和提供的。
GitHub动作配置
下面的配置假定Mulesoft项目在其自己的GitHub存储库中维护。
建立并部署到任何环境。任何推向分支机构都会触发GitHub操作任务。作为这些操作的一部分,它将触发构建,测试和包装,然后部署应用程序。如果任何测试失败或测试覆盖范围低于设定的阈值,则工作流执行将失败,部署将被中止。
工作流设置:在操作下,设置GitHub动作工作流程。在.github/workflows中创建一个工作流文件,并将其命名为<< app-name> -build-deploy.yaml。每当用户将更改推向开发分支或在Dev分支上提出拉动请求时,此工作流将触发构建和部署过程。
用以下示例操作工作流程替换动作YAML详细信息。这将查看当前GitHub存储库中可用的mulesoft代码,并根据“存储库秘密”部分中提供的用户名和密码部署应用程序到任何点平台。
#此工作流将构建和部署mulesoft项目 姓名:使用GitHub Actions CI部署Mulesoft #控制操作将运行何时进行。 上: #触发在Dev Branch上推或拉请求事件时的工作流程 推: 分支:[dev] pull_request: 分支:[dev] #允许您从“操作”选项卡Workflow_dispatch手动运行此工作流: #工作流程由一个或多个工作组成 工作: # “建造” 建造: #作业将运行的跑步者的类型 运行:ubuntu-latest #步骤代表一系列任务,这些任务将作为作业的一部分执行 脚步: #检查您的存储库 - 用途:操作/结帐@v2 - 用途:操作/缓存@V1 和: 路径:〜/.m2/存储库 键:$ {{runner.os}} - maven- $ {{hashfiles('**/pom.xml’)}}}} 还原键:| $ {{runner.os}} - maven- - 名称:设置JDK 1.8 用途:actions/setup-java@v1 和: Java-version:1.8 - 名称:构建 运行:MVN -B软件包 - file pom.xml - 名称:带有提交哈希的工件文件名 运行:| artifactname1 = $(ls target/*。jar | head -1) consithash = $(git rev-parse - short“ $ github_sha”) artifactname2 = $(ls target/*。jar | head -1 | sed“ s/.jar/.j commithash.jar/g”) MV $ artifactname1 $ artifactname2 - 用途:操作/upload-artifact@master 和: 名称:工件 路径:目标/*。罐子 部署: 需求:构建 运行:ubuntu-latest 脚步: - 用途:操作/结帐@v2 - 用途:操作/缓存@V1 和: 路径:〜/.m2/存储库 键:$ {{runner.os}} - maven- $ {{hashfiles('**/pom.xml’)}}}} 还原键:| $ {{runner.os}} - maven- - 用途:action/download-artifact@master 和: 名称:工件 - 名称:部署到任何点平台 env: 用户名:$ {{necrets.anypoint_username}} 密码:$ {{necrets.anypoint_password}} 运行:| artifactname = $(ls *.jar | head -1) mvn mule:deploy -dmule.artifact = $ artifactName -dusername = $ username -dpassword = $ password |
定义秘密例如,在工作流中使用的Anypoint平台用户名和密码来部署应用程序。
构建和部署应用程序。github操作构建和部署流将通过更新文件或通过将新文件检查到存储库来触发:
通过遵循这些简单的步骤,您可以使用Mulesoft的Anypoint平台设置精简且有效的CI/CD工作流程。
联系我们要了解有关Mulesoft可以做什么的更多信息。