# 编译算法
算法编译适用于算法类型为“Git仓库”的项目,即算法托管在Git仓库,需要在Octopus平台在线编译并生成产物,并将产物用于算法镜像的合成。算法类型为“可执行文件”的项目,已经在本地完成编译并生成可执行文件,无需在线编译算法,可跳过本小节。
# 前提条件
- 算法项目托管在Git仓库
- 编译镜像拉取成功
- SSH部署密钥配置成功
# 算法编译操作流程
检查镜像状态
首先需确保算法已成功创建,具体方法可参考“新建Git仓库算法项目”。同时检查编译镜像状态,保证镜像处于“镜像正常”状态。
注意: 编译镜像状态正常是算法编译必要条件,请先确保编译镜像地址正确可用,否则无法进行编译操作。
检查SSH部署密钥配置情况
您需将新建算法生成的公钥配置到Git算法项目中,Octopus平台才能够拉取您的算法代码,具体可参考“SSH部署密钥配置方法”。
编译算法
单击“编译”,平台将下载算法、编译算法、上传产物,通过以上三个步骤完成算法编译。即平台将先下载算法源码,若算法项目的公钥正确配置,算法将成功拉取到编译镜像中进行在线编译,您可以实时查看编译状态,并通过下拉菜单查看当前编译版本的基本信息。编译完成后,编译产物将自动上传到Octopus平台。以编译次序“34”为例,如下图所示下拉菜单则为编译基本信息。
查看编译产物
编译完成后,平台将按照配置的产物列表,自动触发编译产物上传。请单击指定编译次序后的“查看产物”,或直接在产物列表查看,产物版本名和编译次序一致。如下图所示,红框则为编译次序为“34”的编译产物。
您可以单击“下载”,将产物下载到本地查看。
查看算法镜像
产物上传后,平台将自动触发算法镜像构建,编译产物将在指定镜像中运行。如下图所示,红框则为编译次序为“34”的算法镜像。您可以实时查看镜像构建状态,镜像状态为“创建成功”,则表示算法镜像成功创建,并可以将指定算法版本镜像用于在线仿真或批量仿真。例如在批量仿真中,可以选择新建的算法“test”,指定算法版本为“f7f8e405-34”。
# 算法编译版本管理
平台提供算法编译版本管理,保留您每次的编译记录,支持您查看编译的历史版本、基本信息、编译产物、编译日志,您可以删除或重新编译指定版本。
# 查看编译日志
编译过程中,编译状态和日志实时同步,您可以单击指定编译版本后的“更多”>“查看日志”,实时查看编译进度,方便您及时发现编译过程中的问题。结合一个完整的编译过程包含算法下载、编译和产物上传三种场景,编译日志划分为三种类型:
- 下载日志:从您配置的Git仓库地址下载算法项目源码,记录代码下载状态及下载的文件列表;
- 编译日志:运行编译脚本打印的过程信息;
- 上传日志:产物上传结果,若上传完成则打印“Upload completed”,则整个编译过程也完成,编译状态将显示“编译成功”。
# 重新编译
若您需要修改算法项目某个编译版本的编译信息,您可以单击该版本后的“重新编译”,编辑您需要修改的编译配置,如编译镜像或产物列表等,具体可修改信息如下图所示。修改完成后单击“确认”即重新编译。
# 取消编译
编译过程中,您可以单击指定编译版本菜单栏的“更多”>“取消编译”,及时中止编译进程。编译取消后将不产生可执行文件,编译状态也将切换为“已取消”。
注意:
- 若编译状态为“上传中”,则说明编译脚本已执行完,编译产物正在上传,则此时无法取消编译;
- 若编译状态为“编译完成”,则说明整个编译任务已完成,无法取消编译。
# 删除编译
若您不想保留某个编译版本,您可以单击该版本菜单栏的“更多”>“删除”,以删除指定版本编译的历史记录。请根据项目需要,勾选是否需要同步删除与此版本相对应的编译产物和算法镜像。