Java 管道示例

插图 cicd-process-pipeline.png 的说明
Pipeline Orchestrator 使用一些常用工具展示的此 Java 管道示例来驱动管道流程。以下是该过程中的步骤:
- 更改代码
使用静态应用程序安全测试 (SAST) 对身份证明执行基本 Git 检查并启动管道。使用 Gitflow 方法根据代码结构使用 GitLab 或 GithHub 等工具的方式来处理代码资料档案库。可以将代码结构化为具有版本分支、合并和释放来控制源更改。代码映射到开发、测试、预生产和生产等环境。提交到资料档案库的不同部分会触发 Sast 操作。
- 例如,GitHub 包含静态安全扫描,以查找将识别代码和配置文件中的口令和令牌的模式。
- 构建代码
生成 JAR/WAR/EAR 并提取所需的相关项。您可以使用 Java Apache Maven 等工具编译和创建 JAR(或相关的可部署归档文件)并为对象签名。
- 管理第三方相关性:使用 Snyk 等工具管理代码相关性和第三方库。同步检查并确保从可接受的来源获取的依赖项正确并搜索恶意内容。它检索、检查、审批和存储外部相关性对象。通过管理第三方依赖关系,您可以使用 Archiva、Nexus OSS 等工具在本地存储我们的依赖关系。您还可以控制相关项以确保其具有可信源。这可以确保相关性不会受到使用 Snyk、Nexus 或 scanOS 等工具的恶意内容的损害。
- 检查质量和合规性
使用 Sonarcube 或 Lint 等工具扫描 OWASP 前 10 个问题并检查是否符合编码标准。
- 执行单元测试
使用 JACOCO 和 JUnit 执行单元测试并捕获代码覆盖数据。JACOCO 提供覆盖范围集合,例如查找执行了哪些代码行以及以统计方式测试了多少代码。JUnit 执行单元测试。您可以选择展开说明(如果您认为有帮助)。
- 执行 API 测试
使用 Dredd、Apiary 或 Swagger Hub 等工具测试 API 以及模拟数据并测试客户端。
- 测试组件和用户体验
测试黑盒组件和任何 UI 元素。度量性能以确保没有基本问题。使用 Selenium 和 JMeter 等工具收集测试覆盖率度量。JMeter 执行用户体验和性能测试并测试用户工作流。Selenium 推动用户界面元素的运行。
- 测试安全性
测试漏洞的代码,例如如何处理非法 API 调用、超额有效负载、注入攻击等。通过检查冗余代码和准备好的 SQL 语句来执行安全测试。
- 用于部署的程序包
使用 Docker Snyk 等工具将解决方案打包为容器,验证包装并检查容器问题和优秀实践。
- 生成文档
生成有用的文档,并使其可供使用。使用 Pandoc 或 Doxygen 等工具签名。Pandoc 将项目推送到下一阶段,并将其添加到可信赖的商店,例如在下一阶段使用的注册表。
如果其中任何步骤失败或进程发现太多警告,则构建将失败。构建在过程中的任何阶段都会失败,并阻止后续步骤继续。失败的构建会阻止配置的任何自动代码提升。您可以使用一些建议的工具来构建多个阶段,以支持在每个阶段执行测试。例如,系统级测试可以使用 API 测试工具作为外部服务与系统交互,而不是模拟企业解决方案中其他组件的操作。