本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
当 Amazon Q 代码转换完成 GitLab 后在中打开合并请求时,无论配置为针对合并请求运行的任何作业,您的项目管道都会运行。由于更新的代码以 Java 17 为目标,因此如果作业尝试使用 Java 8 或 Java 11 构建这些作业,则会遇到编译错误。
以下是使用 Docker 并在分支名称以开头的合并请求上运行作业时动态选择 Java 17 的高级.gitlab-ci.yml
版本。q/transform-*
决定将打开的请求合并到默认分支后,需要修改为默认使用 Java 17。.gitlab-ci.yml
variables:
MAVEN_OPTS: >-
-Dhttps.protocols=TLSv1.2
-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository
-Dorg.slf4j.simpleLogger.showDateTime=true
-Djava.awt.headless=true
-Dmaven.install.skip=true
MAVEN_CLI_OPTS: >-
--batch-mode
--errors
--fail-at-end
--show-version
--no-transfer-progress
-DinstallAtEnd=true
-DdeployAtEnd=true
BUILD_IMAGE: maven:3-openjdk-8
workflow:
rules:
- if: $CI_COMMIT_REF_NAME =~ /^q\/transform-/ && $CI_PIPELINE_SOURCE == 'merge_request_event'
variables:
BUILD_IMAGE: maven:3-openjdk-17
- when: always
image: $BUILD_IMAGE
cache:
paths:
- .m2/repository
compile:
stage: build
script:
- 'mvn $MAVEN_CLI_OPTS compile'
verify:
stage: test
script:
- 'mvn $MAVEN_CLI_OPTS verify'
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