本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
當 Amazon Q 程式碼轉換在完成之後,在 GitLab 中開啟合併請求時,您的專案管道會執行任何設定為針對合併請求執行的任務。由於更新的程式碼以 Java 17 為目標,如果任務嘗試使用 Java 8 或 Java 11 來建置,這些任務會遇到建置錯誤。
以下是使用 Docker 的進階.gitlab-ci.yml
,當任務在以 開頭的分支名稱的合併請求上執行時,動態選擇 Java 17q/transform-*
。決定將開啟的請求合併到預設分支後,您需要修改 .gitlab-ci.yml
以使用 Java 17。
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