自定义 CI/CD 管道以进行代码转换 - Amazon Q 开发者版

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义 CI/CD 管道以进行代码转换

注意

GitLab Duo with Amazon Q 处于预览版,可能会发生变化。

用于代码转换的 Amazon Q 使用静态分析来执行其部分功能,这要求除了项目源代码之外还提供您的编译和测试范围依赖关系。的代码转换 GitLab 使用 C GitLab I/CD 作业来提供对这些依赖项的访问权限。

在为项目调用代码转换之前,您需要满足以下条件:

  • 至少有一名GitLab 跑步者

  • 必须在项目上启用 CI/CD 功能。

  • 在项目的默认分支上.gitlab-ci.yml提交的。

自定义 CI/CD 管道以进行代码转换

  1. 如果您的项目还没有 C GitLab I/CD 管道,请使用提供的Maven.gitlab-ci.yml模板创建一个。 GitLab有关更多信息,请参阅创建项目管道。

  2. 使用以下任务更新.gitlab-ci.yml文件:

    q-code-transformation: stage: build script: - 'mvn $MAVEN_CLI_OPTS test-compile' - 'mvn $MAVEN_CLI_OPTS dependency:copy-dependencies -DoutputDirectory=dependencies -Dmdep.useRepositoryLayout=true -Dmdep.copyPom=true -Dmdep.addParentPoms=true' artifacts: name: q-code-transformation-dependencies paths: - dependencies/* rules: - if: $CI_COMMIT_REF_NAME =~ /^q\/transform-/ && $CI_PIPELINE_SOURCE == 'push' when: always
    • 在 Amazon Q 代码转换尝试处理项目之前,第一次mvn调用验证项目是否已编译。目标可能是测试编译、测试、集成测试或验证。

    • 第二次mvn调用将项目依赖关系复制到暂存目录,以将其作为作业工件包括在内。

    • artifacts部分上传复制的依赖项,这样 Amazon Q 代码转换就可以访问它们。

    • rules节将此作业配置为仅在以推送新提交q/transform-*时开头的分支名称上运行。当打开合并请求时,情况并非如此。