Continuous integration (CI) and continuous delivery (CD), collectively referred to as the CI/CD pipeline, together comprise a software engineering technique to perform automated tasks in response to code changes.
##好处
SciJava项目(包括ImageJ2和Fiji)以多种方式使用CI/CD,包括:
CI 作业将 SNAPSHOT 构建部署到SciJava Maven repository,以响应到每个代码仓库的主线分支(例如main 或 master)。因此,任何依赖于给定组件的LATEST版本的后续项目都将与上次成功的 CI 构建相匹配,即主线上的最新代码。
- 运行关联的Continuous integration。CI有助于及早检测代码库中引入的新错误。
- 制作releases。 CI 作业将发布版本部署到适当的 Maven 存储库 — 通常是 SciJava Maven 存储库或 OSS Sonatype。
- 保持资源最新。
- 保持网络资源(例如javadoc)为最新。
将您的库房部署到Maven仓储库供给其他开发人员使用。它也是一个contribution requirement for the Fiji project。
平台
有一些流行的选项可用于在云中或您自己的托管基础设施上执行 CI 构建:
- GitHub Actions - 大多数 SciJava 项目都使用它来构建、测试和部署。
- AppVeyor - 被一些 SciJava 项目用于在 Windows 平台上进行构建。
- Travis CI - 由 2017 年至 2021 年 SciJava 项目使用。
- Jenkins - 由 2010 年至 2019 年 SciJava 项目使用。
仅举几个ImageJ社区中正在或曾经使用过的例子。