关于开源项目预算的CI/CD

2020-06-01 01:52:24

我喜欢学习。我也喜欢构建和自动化。这些活动为我提供了自然的、内在的快乐。另一方面,写作是一种需要有意识地练习的技能。因此,为此,我使用以下技术记录了用于设置构建和部署管道的相关部分:

上述管道的最大好处之一是成本。对于开源项目来说,除了数字海洋中的水滴之外,其他所有东西都是完全免费的。

下面是build.gradle配置的一部分,其中添加了JaCoCo支持,SonarQube配置为向SonarCloud项目发送报告。

插件{id';Jacoco';id';org.sonarqube';version';2.8';}应用插件:';Jacoco';Jacoco{toolVersion=";0.8.5";}子项目{测试。useTestNG()}JacocoTestReport{Reports{XML.。Enabled=true}}def env=系统。getenv()sonarqube{properties{property";sonar.projectKey&34;,";<;<;SONARCLOUD项目关键字&>34;;sonar.Organization&34;,<;<;<;SONARCLOUD组织&>&34;&34;property";sonar.host.url。,env[";SONARCLOUD";]Property";sonar.java.coveragePlugin";,";Jacoco";Property";sonar.coverage.jacoco.xmlReportPaths";,File(";${rootProject.projectDir}/build/reports/jacoco/test/jacocoTestReport.xml";)}}JacocoTestReport。依赖于{子项目*。测试}。

GitHub操作是GitHub的一个相对较新的功能,它允许自动执行工作流。下面的示例工作流被配置为在推送提交时运行(第二行,On:Push)。步骤大致如下:

名称:在以下位置运行Gradle测试:推送作业:Gradle:Run-On:Ubuntu-最新步骤:-Users:Actions/checkout@v1-Uses:Actions/Setup-java@v1 with:Java-Version:11-Name:Gradle测试用法:eskatos/Gradle-command-action@v1 env:env:CI GitHub_Token:${Secrets.GITHUB_TOKEN}}With:Arguments:CLEAN TEST JacocoTestReport。:HurricanKai/Publish-Docker-Github-Action@master IF:CONTAINS(github.ref,';Refs/Tags/v';),带:名称:<;<;Docker存储库URL>;>;用户名:${actis.DOCKER_USERNAME}}密码:${Secrets.DOCKER_PASSWORD}}注册表:quay.io标记:true-name:重新启动服务用法:appleboy/ssh-action@master if:包含(github.ref,';res/tag/v';)与:主机:${secus.HOST}}用户名:${{Secrets.USERNAME}}端口:${{Secrets.PORT}}密钥:${{Secrets.SSHKEY}}脚本:|systemctl stop<;<;我的服务&>>;/snap/bin/docker系统prune-af systemctl start<;<;我的服务&>。

还要将<;<;占位符>;值替换为实际值,这样您的项目就应该可以运行了。