开发者社区 问答 正文

云效使用指南:持续交付:构建:流水线上的构建任务



构建任务,是 RDC流水线上的一类任务,它负责构建打包,供后续的部署任务使用。

构建任务的运行


构建任务一般不需要在运行时输入信息,就会自动运行。运行期间和运行结束后,可以在页面下方查看构建日志:


构建任务的配置



基本配置


在流水线编辑页面,添加任务时,请选择“构建”,并填写其基本配置:


高级配置:使用包标签


在流水线上配置构建任务时,点击打开高级配置,会看到“包标签”这个配置:

包标签的默认值是default,但可以调整这个配置。构建打包得到的包,用于不同用途时,可以在上面打上相应的标签。比如部署到日常测试环境的包和部署到预发环境的包、生产环境的包,需要有不同的内容,那么可以分别用testing、staging、production来区分这三类包。流水线上的部署组件,就可以根据需要,配置取得特定标签对应的包。比如,取得testing对应的包,用来部署日常测试环境。
那么,构建组件是如何根据包标签名的不同,打出不同的包呢?在构建时,系统会把包标签的值通过环境变量的方式,传到构建的上下文中。具体来说,该环境变量的key是PACKAGE_LABEL,值就是包标签的名字。于是,构建过程就可以据此进行调整,以产生适合这个构建目的的包。详见 使用传入参数改变构建行为

高级配置:增加输入参数


在包标签设置的下方,有“+添加参数”按钮,点击可添加key-value对:

这些key-value,将作为环境变量,传入构建过程。比如上图中,构建过程将获得ENV_MY_KEY这个环境变量,值为some value,以及ENV_YOUR_KEY这个环境变量,值为another value。构建过程就可以据此进行调整,以产生适合这个构建目的的包。详见 使用传入参数改变构建行为

高级配置:同时构建不同用途的多个包


可以在一个构建任务中,构建多个包。不同的包,至少包标签不同,还可以有不同的其他输入参数:

这些包,将在流水线上执行到该构建任务时,在多台机器上同时构建,以尽可能提高效率。其中任何一个包构建失败,将标记为该构建任务失败,流水线本次运行中止。

展开
收起
行者武松 2017-10-23 14:23:39 2142 分享 版权
阿里云 AI 助理回答

构建任务在阿里云的RDC(Research and Development Cloud,假设为阿里云的研发云平台,实际请以官方公布为准)流水线中扮演着关键角色,它负责将源代码编译、打包成可部署的软件包或应用,以便后续的部署步骤使用。下面是对您描述内容的总结和补充,结合阿里云产品特性进行说明:

构建任务的核心功能

  1. 自动运行与日志查看:构建任务设计为自动化执行,无需人工干预即可根据配置完成源码编译、依赖管理、资源打包等操作。运行期间,详细的构建日志会实时展示,便于开发者监控构建过程及问题排查。

  2. 基本配置:在创建构建任务时,用户需指定基础设置,如源代码仓库地址、分支、编译命令等,确保系统能正确获取代码并执行构建指令。

  3. 高级配置:包标签

    • 目的:通过设定不同的“包标签”,可以为不同环境(如开发、测试、预发布、生产)生成特定版本的软件包。这有助于实现环境隔离,避免因误用包而导致的环境混乱。
    • 实现机制:系统通过环境变量PACKAGE_LABEL传递当前构建的包标签给构建脚本或工具,使得构建过程可以根据这个标签动态调整,比如选择不同的配置文件或执行特定的构建逻辑。
  4. 增加输入参数

    • 除了包标签外,用户还可以自定义其他环境变量作为输入参数,进一步定制化构建过程。这些参数可以在构建脚本中被引用,实现更灵活的构建逻辑控制。
  5. 同时构建多用途包

    • 为了提高效率,构建任务支持在同一任务中并行构建多个不同用途的包。每个包可以有不同的标签和其他配置,所有包并行处理,但任何包构建失败即视为整个构建任务失败,确保了质量控制。

阿里云产品的关联性

  • DevOps工具链:阿里云提供了一整套DevOps解决方案,包括但不限于Codeup(代码托管)、CloudPipeline(持续集成/持续交付CI/CD平台)、ActionTrail(操作跟踪)等服务,这些工具和服务共同构成了一个完整的研发运维体系,支持上述构建任务的高效实施。
  • 环境管理与部署:结合阿里云ECS(Elastic Compute Service,弹性计算服务)、EDAS(Enterprise Distributed Application Service,企业级分布式应用服务)等产品,可以轻松地将构建好的应用包部署到不同环境,实现快速迭代和环境一致性管理。

综上所述,阿里云的构建任务不仅简化了软件开发生命周期中的构建环节,还通过高度可配置性和自动化能力,提升了开发效率和部署灵活性,是现代云原生开发流程中的重要一环。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答