워크플로우 관련 문제 해결 - 아마존 CodeCatalyst

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

워크플로우 관련 문제 해결

CodeCatalystAmazon의 워크플로와 관련된 문제를 해결하려면 다음 섹션을 참조하십시오. 워크플로에 대한 자세한 내용은 워크플로를 사용하여 빌드, 테스트 및 배포하십시오. CodeCatalyst 섹션을 참조하세요.

“워크플로가 비활성 상태입니다.” 라는 메시지를 수정하려면 어떻게 해야 합니까?

문제: CodeCatalyst 콘솔의 CI/CD, 워크플로우에서 워크플로가 다음 메시지와 함께 나타납니다.

Workflow is inactive.

이 메시지는 워크플로 정의 파일에 현재 사용 중인 브랜치에 적용되지 않는 트리거가 포함되어 있음을 나타냅니다. 예를 들어 워크플로 정의 파일에는 브랜치를 참조하는 PUSH 트리거가 포함되어 있지만 사용자는 기능 main 브랜치를 사용하고 있을 수 있습니다. 기능 브랜치에서 변경한 내용은 해당 브랜치에 적용되지 않고 워크플로 실행을 시작하지도 않으므로 브랜치에서 main 워크플로를 CodeCatalyst 해제하고 로 표시합니다. main Inactive

수정 방법:

피처 브랜치에서 워크플로를 시작하려면 다음과 같이 하면 됩니다.

  • 기능 브랜치의 워크플로 정의 파일에서 Triggers 섹션의 Branches 속성을 제거하여 다음과 같이 표시되도록 합니다.

    Triggers: - Type: PUSH

    이 구성을 사용하면 기능 브랜치를 포함한 모든 브랜치로 푸시할 때 트리거가 활성화됩니다. 트리거가 CodeCatalyst 활성화되면 푸시하려는 브랜치의 워크플로 정의 파일과 소스 파일을 사용하여 워크플로 실행을 시작합니다.

  • 기능 브랜치의 워크플로 정의 파일에서 Triggers 섹션을 제거하고 워크플로를 수동으로 실행합니다.

  • 기능 브랜치의 워크플로 정의 파일에서 다른 브랜치 (예main:) 가 아닌 기능 브랜치를 참조하도록 PUSH 섹션을 변경하십시오.

중요

변경 내용을 main 브랜치에 다시 병합하지 않으려는 경우에는 이러한 변경 내용을 커밋하지 않도록 주의하십시오.

워크플로 정의 파일 편집에 대한 자세한 내용은 을 참조하십시오워크플로 생성.

트리거에 대한 자세한 내용은 트리거를 사용하여 자동으로 워크플로 실행 시작 주제를 참조하십시오.

“워크플로 정의에 오류가 없음” 오류를 수정하려면 어떻게 해야 합니까?

문제: 다음과 같은 오류 메시지가 표시됩니다.

오류 1:

CI/CD, 워크플로 페이지의 워크플로 이름 아래에 다음이 표시됩니다.

Workflow definition has n errors

오류 2:

워크플로를 편집하는 동안 검증 버튼을 선택하면 CodeCatalyst 콘솔 상단에 다음 메시지가 나타납니다.

The workflow definition has errors. Fix the errors and choose Validate to verify your changes.

오류 3:

워크플로의 세부 정보 페이지로 이동한 후 워크플로우 정의 필드에 다음 오류가 표시됩니다.

n errors

수정 방법:

  • CI/CD를 선택하고 워크플로를 선택한 다음 오류가 있는 워크플로의 이름을 선택합니다. 상단 근처의 워크플로 정의 필드에서 오류 링크를 선택합니다. 오류에 대한 세부 정보가 페이지 하단에 표시됩니다. 오류의 문제 해결 팁을 따라 문제를 해결하십시오.

  • 워크플로 정의 파일이 YAML 파일인지 확인하십시오.

  • 워크플로 정의 파일의 YAML 속성이 올바른 수준에 중첩되어 있는지 확인하십시오. 워크플로우 정의 파일에서 속성을 중첩하는 방법을 보려면 를 참조하거나 에서 링크된 작업 설명서를 참조하십시오. 워크플로우 YAML 정의 CodeCatalyst 워크플로에 작업 추가

  • 별표 (*) 및 기타 특수 문자가 제대로 이스케이프 처리되었는지 확인하십시오. 이를 피하려면 작은따옴표나 큰따옴표를 추가하세요. 예:

    Outputs: Artifacts: - Name: myartifact Files: - "**/*"

    워크플로 정의 파일의 특수 문자에 대한 자세한 내용은 을 참조하십시오구문 지침 및 규칙.

  • 워크플로 정의 파일의 YAML 속성이 올바른 대소문자를 사용하는지 확인하십시오. 대/소문자 규칙에 대한 자세한 내용은 을 참조하십시오. 구문 지침 및 규칙 각 속성의 올바른 대/소문자를 확인하려면 를 참조하거나 링크된 작업 설명서를 참조하십시오 CodeCatalyst 워크플로에 작업 추가. 워크플로우 YAML 정의

  • 워크플로우 정의 파일에 SchemaVersion 속성이 있고 올바른 버전으로 설정되어 있는지 확인하십시오. 자세한 정보는 SchemaVersion을 참조하세요.

  • 워크플로 정의 파일의 Triggers 섹션에 필요한 모든 속성이 포함되어 있는지 확인하십시오. 필수 속성을 결정하려면 시각적 편집기에서 트리거를 선택하고 정보가 누락된 필드를 찾거나 에서 트리거 참조 설명서를 참조하십시오Triggers.

  • 워크플로 정의 파일의 DependsOn 속성이 제대로 구성되어 있고 순환 종속성을 유발하지 않는지 확인하세요. 자세한 정보는 다른 액션에 종속되도록 액션을 구성하기을 참조하세요.

  • 워크플로 정의 파일의 Actions 섹션에 하나 이상의 작업이 포함되어 있는지 확인하십시오. 자세한 정보는 작업을 참조하세요.

  • 각 작업에 필요한 속성이 모두 포함되어 있는지 확인하십시오. 필수 속성을 결정하려면 비주얼 편집기에서 액션을 선택하고 정보가 누락된 필드를 찾거나 에서 링크된 액션 설명서를 참조하십시오 CodeCatalyst 워크플로에 작업 추가.

  • 모든 입력 아티팩트에 해당하는 출력 아티팩트가 있는지 확인하십시오. 자세한 정보는 출력 아티팩트 정의을 참조하세요.

  • 한 액션에 정의된 변수를 다른 액션에서 사용할 수 있도록 익스포트해야 합니다. 자세한 정보는 다른 작업에서 사용할 수 있도록 변수 내보내기을 참조하세요.

“자격 증명을 찾을 수 없음” 및 "ExpiredToken" 오류를 해결하려면 어떻게 해야 하나요?

문제: 작업을 진행하는 자습서: Amazon EKS에 애플리케이션 배포 동안 개발 컴퓨터의 터미널 창에 다음 오류 메시지 중 하나 또는 둘 모두가 표시됩니다.

Unable to locate credentials. You can configure credentials by running "aws configure".

ExpiredToken: The security token included in the request is expired

수정 방법:

이러한 오류는 AWS 서비스에 액세스하는 데 사용하는 자격 증명이 만료되었음을 나타냅니다. 이 경우에는 aws configure 명령을 실행하지 마십시오. 대신 다음 지침에 따라 AWS 액세스 키와 세션 토큰을 새로 고치십시오.

AWS 액세스 키와 세션 토큰을 새로 고치려면
  1. Amazon EKS 자습서 완료 (codecatalyst-eks-user) 를 참조하여 사용 중인 사용자의 AWS 액세스 포털 URL, 사용자 이름 및 암호를 가지고 있는지 확인하십시오. 자습서를 1단계: 개발용 컴퓨터 설정 완료할 때 이러한 항목을 구성했어야 합니다.

    참고

    이 정보가 없는 경우 IAM Identity Center의 codecatalyst-eks-user 세부 정보 페이지로 이동하여 암호 재설정, 일회용 암호 생성 [...] 을 선택합니다. 그리고 비밀번호를 다시 재설정하여 화면에 정보를 표시하십시오.

  2. 다음 중 하나를 수행하십시오.

    • AWS 액세스 포털 URL을 브라우저의 주소 표시줄에 붙여넣습니다.

      Or

    • AWS 액세스 포털 페이지가 이미 로드되어 있다면 새로 고치세요.

  3. 아직 로그인하지 않았다면 codecatalyst-eks-user 해당 사용자 이름과 비밀번호로 로그인하세요.

  4. 선택한 AWS 계정다음 codecatalyst-eks-user 사용자에게 할당한 AWS 계정 이름과 권한 집합을 선택합니다.

  5. 권한 집합 이름 (codecatalyst-eks-permission-set) 옆에서 명령줄 또는 프로그래밍 방식 액세스를 선택합니다.

  6. 페이지 중간에 있는 명령을 복사합니다. 다음과 비슷해 보입니다.

    export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="session-token"

    ... 여기서 세션 토큰은 긴 임의 문자열입니다.

  7. 개발 시스템의 터미널 프롬프트에 명령을 붙여넣고 Enter 키를 누릅니다.

    새 키와 세션 토큰이 로드됩니다.

    이제 자격 증명을 새로 고쳤습니다. 이제 AWS CLIeksctl, 및 kubectl 명령이 작동할 것입니다.

“서버에 연결할 수 없음” 오류를 해결하려면 어떻게 해야 하나요?

문제: 에서 자습서: Amazon EKS에 애플리케이션 배포 설명한 자습서를 진행하는 동안 개발 컴퓨터의 터미널 창에 다음과 비슷한 오류 메시지가 표시됩니다.

Unable to connect to the server: dial tcp: lookup long-string.gr7.us-west-2.eks.amazonaws.com on 1.2.3.4:5: no such host

수정 방법:

이 오류는 일반적으로 kubectl 유틸리티가 Amazon EKS 클러스터에 연결하는 데 사용하는 자격 증명이 만료되었음을 나타냅니다. 문제를 해결하려면 터미널 프롬프트에 다음 명령을 입력하여 자격 증명을 새로 고치십시오.

aws eks update-kubeconfig --name codecatalyst-eks-cluster --region us-west-2

위치:

  • codecatalyst-eks-clusterAmazon EKS 클러스터의 이름으로 대체됩니다.

  • us-west-2는 클러스터가 AWS 배포된 지역으로 대체됩니다.

비주얼 에디터에서 CodeDeploy 필드가 누락된 이유는 무엇입니까?

문제: Amazon ECS로 배포 작업을 사용하고 있는데 워크플로의 시각적 편집기와 같은 CodeDeploy CodeDeploy AppSpec필드가 표시되지 않습니다. 이 문제는 Service 필드에 지정한 Amazon ECS 서비스가 블루/그린 배포를 수행하도록 구성되지 않았기 때문에 발생할 수 있습니다.

수정 방법:

IAM 기능 오류를 수정하려면 어떻게 해야 합니까?

문제: AWS CloudFormation 스택 배포 작업을 사용하고 있는데 스택 배포 작업의 ##[error] requires capabilities: [capability-name] 로그에서 확인할 수 있습니다. AWS CloudFormation

가능한 해결 방법: 다음 절차를 완료하여 워크플로 정의 파일에 기능을 추가하십시오. IAM 기능에 대한 자세한 내용은 IAM 사용 설명서의 AWS CloudFormation 템플릿에서 IAM 리소스 승인을 참조하십시오.

Visual
비주얼 에디터를 사용하여 IAM 기능을 추가하려면
  1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 엽니다.

  2. 프로젝트를 선택합니다.

  3. 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.

  4. 워크플로의 이름을 선택합니다. 워크플로가 정의된 소스 리포지토리 또는 브랜치 이름을 기준으로 필터링하거나 워크플로 이름을 기준으로 필터링할 수 있습니다.

  5. 편집을 선택합니다.

  6. Visual을 선택합니다.

  7. 워크플로 다이어그램에서 AWS CloudFormation 스택 배포 작업을 선택합니다.

  8. 구성 탭을 선택합니다.

  9. 하단에서 고급 - 선택 사항을 선택합니다.

  10. 기능 드롭다운 목록에서 오류 메시지에 언급된 기능 옆의 확인란을 선택합니다. 목록에서 기능을 사용할 수 없는 경우 YAML 편집기를 사용하여 추가하십시오.

  11. (선택 사항) [Validate] 를 선택하여 커밋하기 전에 워크플로의 YAML 코드를 검증합니다.

  12. [Commit] 을 선택하고 커밋 메시지를 입력한 다음 [Commit] 을 다시 선택합니다.

  13. 새 워크플로 실행이 자동으로 시작되지 않는 경우 워크플로를 수동으로 실행하여 변경 사항으로 오류가 해결되는지 확인하십시오. 워크플로를 수동으로 실행하는 방법에 대한 자세한 내용은 을 참조하십시오워크플로우 수동 실행 시작.

YAML
YAML 편집기를 사용하여 IAM 기능을 추가하려면
  1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 엽니다.

  2. 프로젝트를 선택합니다.

  3. 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.

  4. 워크플로의 이름을 선택합니다. 워크플로가 정의된 소스 리포지토리 또는 브랜치 이름을 기준으로 필터링하거나 워크플로 이름을 기준으로 필터링할 수 있습니다.

  5. 편집을 선택합니다.

  6. YAML을 선택합니다.

  7. AWS CloudFormation 스택 배포 작업에서 다음과 같은 capabilities 속성을 추가합니다.

    DeployCloudFormationStack: Configuration: capabilities: capability-name

    caability-name을 오류 메시지에 표시된 IAM 기능의 이름으로 대체하십시오. 여러 기능을 나열하려면 공백 없이 쉼표를 사용합니다. 자세한 내용은 의 capabilities AWS CloudFormation '스택 배포' 액션 YAML 정의 속성 설명을 참조하십시오.

  8. (선택 사항) [Validate] 를 선택하여 커밋하기 전에 워크플로의 YAML 코드를 검증합니다.

  9. [Commit] 을 선택하고 커밋 메시지를 입력한 다음 [Commit] 을 다시 선택합니다.

  10. 새 워크플로 실행이 자동으로 시작되지 않는 경우 워크플로를 수동으로 실행하여 변경 사항으로 오류가 해결되는지 확인하십시오. 워크플로를 수동으로 실행하는 방법에 대한 자세한 내용은 을 참조하십시오워크플로우 수동 실행 시작.

“npm install” 오류를 수정하려면 어떻게 해야 하나요?

문제: AWS CDK 배포 작업 또는 AWS CDK 부트스트랩 작업이 오류와 함께 실패합니다. npm install 이 오류는 작업에서 액세스할 수 없는 프라이빗 노드 패키지 관리자 (npm) 레지스트리에 AWS CDK 앱 종속성을 저장하고 있기 때문에 발생할 수 있습니다.

가능한 해결 방법: 다음 지침에 따라 추가 레지스트리 및 인증 정보로 AWS CDK 앱 cdk.json 파일을 업데이트하십시오.

시작하기 전 준비 사항
  1. 인증 정보를 위한 시크릿을 생성하세요. 이러한 비밀은 일반 텍스트로 입력하는 대신 cdk.json 파일에서 참조해야 합니다. 시크릿을 만들려면:

    1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 엽니다.

    2. 프로젝트를 선택합니다.

    3. 탐색 창에서 CI/CD를 선택한 다음 시크릿을 선택합니다.

    4. 다음 속성을 사용하여 두 개의 시크릿을 생성하십시오.

      첫 번째 비밀 두 번째 비밀

      이름: npmUsername

      : npm-username. 여기서 npm-username은 프라이빗 npm 레지스트리를 인증하는 데 사용되는 사용자 이름입니다.

      (선택 사항) 설명: The username used to authenticate to the private npm registry.

      이름: npmAuthToken

      : npm-auth-token, 여기서 프라이빗 npm 레지스트리를 인증하는 데 사용되는 액세스 npm-auth-token토큰은 다음과 같습니다. npm 액세스 토큰에 대한 자세한 내용은 npm 설명서의 액세스 토큰 정보를 참조하십시오.

      (선택 사항) 설명: The access token used to authenticate to the private npm registry.

      비밀에 대한 자세한 내용은 을 참조하십시오워크플로우에서 시크릿 구성 및 사용.

  2. 시크릿을 AWS CDK 액션에 환경 변수로 추가하십시오. 액션은 실행 시 변수를 실제 값으로 대체합니다. 시크릿 추가하기:

    1. 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.

    2. 워크플로의 이름을 선택합니다. 워크플로가 정의된 소스 리포지토리 또는 브랜치 이름을 기준으로 필터링하거나 워크플로 이름을 기준으로 필터링할 수 있습니다.

    3. 편집을 선택합니다.

    4. Visual을 선택합니다.

    5. 워크플로 다이어그램에서 AWS CDK 작업을 선택합니다.

    6. 입력 탭을 선택합니다.

    7. 다음 속성을 가진 두 변수를 추가합니다.

      첫 번째 변수 두 번째 변수

      이름: NPMUSER

      : ${Secrets.npmUsername}

      이름: NPMTOKEN

      : ${Secrets.npmAuthToken}

      이제 비밀에 대한 참조를 포함하는 변수가 두 개 생겼습니다.

    워크플로 정의 파일 YAML 코드는 다음과 비슷해야 합니다.

    참고

    다음 코드 샘플은 AWS CDK 부트스트랩 작업에서 가져온 것으로, AWS CDK 배포 작업도 비슷해 보입니다.

    Name: CDK_Bootstrap_Action SchemaVersion: 1.0 Actions: CDKBootstrapAction: Identifier: aws/cdk-bootstrap@v1 Inputs: Variables: - Name: NPMUSER Value: ${Secrets.npmUsername} - Name: NPMTOKEN Value: ${Secrets.npmAuthToken} Sources: - WorkflowSource Environment: Name: Dev2 Connections: - Name: account-connection Role: codecatalystAdmin Configuration: Parameters: Region: "us-east-2"

    이제 cdk.json 파일에서 NPMUSERNPMTOKEN 변수를 사용할 준비가 되었습니다. 다음 절차로 이동합니다.

cdk.json 파일을 업데이트하려면
  1. AWS CDK 프로젝트의 루트 디렉터리로 변경한 다음 파일을 엽니다. cdk.json

  2. "app":속성을 찾아 빨간색 기울임꼴로 표시된 코드를 포함하도록 변경합니다.

    참고

    다음 샘플 코드는 TypeScript 프로젝트에서 가져온 것입니다. JavaScript 프로젝트를 사용하는 경우 코드는 동일하지는 않지만 비슷해 보일 것입니다.

    { "app": "npm set registry=https://your-registry/folder/CDK-package/ --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:always-auth=true --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:_authToken=\"${NPMUSER}\":\"${NPMTOKEN}\" && npm install && npx ts-node --prefer-ts-exts bin/hello-cdk.ts|js", "watch": { "include": [ "**" ], "exclude": [ "README.md", "cdk*.json", "**/*.d.ts", "**/*.js", "tsconfig.json", "package*.json", ...
  3. 빨간색 기울임꼴로 강조 표시된 코드에서 다음을 바꾸십시오.

    • 레지스트리/폴더/CDK 패키지/ (프라이빗 레지스트리의 프로젝트 종속성 경로 포함) AWS CDK

    • hello-cdk.ts|.js에 진입점 파일 이름을 입력해 주세요. 이 파일은 사용 중인 언어에 따라 .ts (TypeScript) 또는 .js () 파일일 수 있습니다. JavaScript

      참고

      이 작업은 NPMUSER 및 NPMTOKEN 변수를 시크릿에서 지정한 npm 사용자 이름 및 액세스 토큰으로 대체합니다.

  4. cdk.json 파일을 저장합니다.

  5. 작업을 수동으로 다시 실행하여 변경 사항으로 오류가 해결되는지 확인합니다. 액션을 수동으로 실행하는 방법에 대한 자세한 내용은 을 참조하십시오워크플로우 수동 실행 시작.

여러 워크플로의 이름이 같은 이유는 무엇입니까?

워크플로는 지점별, 리포지토리별로 저장됩니다. 두 개의 워크플로가 서로 다른 브랜치에 있는 경우 동일한 이름을 가질 수 있습니다. 워크플로 페이지에서 브랜치 이름을 보면 같은 이름의 워크플로를 구분할 수 있습니다. 자세한 정보는 Amazon에서 브랜치를 사용하여 소스 코드 작업을 구성하십시오. CodeCatalyst 을 참조하세요.

워크플로 브랜치

워크플로 정의 파일을 다른 폴더에 저장할 수 있나요?

아니요, 모든 워크플로 정의 파일은 .codecatalyst/workflows 폴더에 저장해야 합니다. 여러 논리적 프로젝트와 함께 mono repo를 사용하는 경우 모든 워크플로 정의 파일을 .codecatalyst/workflows 폴더에 배치한 다음 트리거 내의 FilesChanged 속성을 사용하여 지정된 프로젝트 경로에서 워크플로를 트리거합니다. 자세한 정보는 트리거를 사용하여 자동으로 워크플로 실행 시작을 참조하세요.

워크플로에 작업을 순서대로 추가하려면 어떻게 해야 하나요?

기본적으로 작업을 워크플로에 추가하면 종속성이 없으며 다른 작업과 병렬로 실행됩니다.

작업을 순서대로 정렬하려는 경우 필드를 설정하여 다른 작업에 대한 종속성을 설정할 수 있습니다. DependsOn 다른 액션의 출력인 아티팩트 또는 변수를 사용하도록 액션을 구성할 수도 있습니다. 자세한 정보는 다른 액션에 종속되도록 액션을 구성하기을 참조하세요.

워크플로가 검증에 성공했지만 런타임에 실패하는 이유는 무엇입니까?

Validate버튼을 사용하여 워크플로를 검증했지만 워크플로가 실패했다면 검증기의 제한 때문일 수 있습니다.

워크플로 구성의 비밀, 환경 또는 플릿과 같은 CodeCatalyst 리소스와 관련된 오류는 커밋 중에 등록되지 않습니다. 유효하지 않은 참조를 사용하는 경우 워크플로 실행 시에만 오류가 식별됩니다. 마찬가지로, 필수 필드 누락이나 작업 속성의 오타와 같은 작업 구성에 오류가 있는 경우 워크플로가 실행될 때만 식별됩니다. 자세한 정보는 워크플로 생성을 참조하세요.

자동 검색을 수행해도 내 작업에 대한 보고서가 검색되지 않습니다.

문제: 테스트를 실행하는 작업에 대해 자동 검색을 구성했지만 에서 보고서가 검색되지 않았습니다. CodeCatalyst

가능한 해결 방법: 이 문제는 여러 가지 문제로 인해 발생할 수 있습니다. 다음 해결 방법 중 하나 이상을 시도해 보십시오.

  • 테스트를 실행하는 데 사용된 도구가 CodeCatalyst 이해할 수 있는 형식 중 하나로 출력을 생성하는지 확인하십시오. 예를 들어, 테스트 및 코드 커버리지 보고서를 검색할 수 있게 pytest CodeCatalyst 하려면 다음 인수를 포함하세요.

    --junitxml=test_results.xml --cov-report xml:test_coverage.xml

    자세한 정보는 품질 보고서 유형을 참조하세요.

  • 출력의 파일 확장자가 선택한 형식과 일치하는지 확인하십시오. 예를 들어 결과를 JUnitXML 형식으로 pytest 생성하도록 구성하는 경우 파일 확장자가 인지 확인하십시오.xml. 자세한 정보는 품질 보고서 유형을 참조하세요.

  • 특정 폴더를 일부러 제외하지 않는 한 전체 파일 시스템 (**/*) 을 포함하도록 구성해야 합니다. IncludePaths 마찬가지로, 보고서가 위치할 것으로 예상되는 디렉토리를 ExcludePaths 제외하지 않도록 하세요.

  • 특정 출력 파일을 사용하도록 보고서를 수동으로 구성한 경우 자동 검색에서 제외됩니다. 자세한 정보는 품질 보고서 YAML 예제을 참조하세요.

  • 출력이 생성되기 전에 작업이 실패했기 때문에 자동 검색에서 보고서를 찾지 못할 수 있습니다. 예를 들어 단위 테스트를 실행하기 전에 빌드가 실패했을 수 있습니다.

성공 기준을 구성한 후 자동 검색된 보고서에서 내 작업이 실패합니다.

문제: 자동 검색을 활성화하고 성공 기준을 구성하면 일부 보고서가 성공 기준을 충족하지 않아 작업이 실패합니다.

가능한 해결 방법: 이 문제를 해결하려면 다음 해결 방법 중 하나 이상을 시도해 보십시오.

  • 관심이 없는 보고서를 IncludePaths 수정하거나 ExcludePaths 제외하십시오.

  • 모든 보고서가 통과되도록 성공 기준을 업데이트하십시오. 예를 들어 회선 커버리지가 50% 이고 다른 하나는 70% 인 보고서가 두 개 발견된 경우 최소 회선 커버리지를 50% 로 조정하십시오. 자세한 내용은 성공 기준 섹션을 참조하세요.

  • 실패한 보고서를 수동으로 구성된 보고서로 전환하십시오. 이렇게 하면 특정 보고서에 대해 다양한 성공 기준을 구성할 수 있습니다. 자세한 정보는 보고서의 성공 기준 구성을 참조하세요.

자동 검색을 통해 원하지 않는 보고서가 생성됩니다.

문제: 자동 검색을 활성화하면 원하지 않는 보고서가 생성됩니다. 예를 들어, CodeCatalyst 는 내 애플리케이션의 종속 항목에 저장된 파일에 대한 코드 커버리지 보고서를 생성합니다. node_modules

가능한 해결 방법: 원하지 않는 파일을 제외하도록 ExcludePaths 구성을 조정할 수 있습니다. 예를 node_modules 들어 제외하려면 추가하십시오node_modules/**/*. 자세한 정보는 경로 포함/제외을 참조하세요.

자동 검색은 단일 테스트 프레임워크에 대해 여러 개의 작은 보고서를 생성합니다.

문제: 특정 테스트 및 코드 커버리지 보고 프레임워크를 사용할 때 자동 검색으로 인해 많은 수의 보고서가 생성되는 것을 발견했습니다. 예를 들어 Maven Surefire 플러그인을 사용하는 경우 자동 검색은 각 테스트 클래스에 대해 다른 보고서를 생성합니다.

가능한 해결 방법: 프레임워크가 출력을 단일 파일로 집계할 수 있습니다. 예를 들어 Maven Surefire 플러그인을 사용하는 경우 파일을 수동으로 npx junit-merge 집계하는 데 사용할 수 있습니다. 전체 표현식은 다음과 같을 수 있습니다.

mvn test; cd test-package-path/surefire-reports && npx junit-merge -d ./ && rm *Test.xml

CI/CD에 나열된 워크플로가 소스 리포지토리의 워크플로와 일치하지 않습니다.

문제: CI/CD, 워크플로 페이지에 표시된 워크플로가 소스 리포지토리의 ~/.codecatalyst/workflows/ 폴더에 있는 워크플로와 일치하지 않습니다. 다음과 같은 불일치가 나타날 수 있습니다.

  • 워크플로가 워크플로 페이지에 나타나지만 소스 저장소에는 해당 워크플로 정의 파일이 없습니다.

  • 워크플로 정의 파일은 소스 저장소에 있지만 해당 워크플로우는 워크플로 페이지에 나타나지 않습니다.

  • 워크플로는 소스 리포지토리와 워크플로 페이지에 모두 존재하지만 둘은 다릅니다.

이 문제는 워크플로 페이지를 새로 고칠 시간이 없거나 워크플로 할당량을 초과한 경우 발생할 수 있습니다.

수정 방법:

  • 대기합니다. 일반적으로 원본으로 커밋한 후 2~3초 정도 기다려야 워크플로 페이지에 변경 내용이 표시됩니다.

  • 워크플로 할당량을 초과한 경우 다음 중 하나를 수행하십시오.

    참고

    워크플로 할당량을 초과했는지 확인하려면 소스 리포지토리 또는 워크플로 페이지에 있는 워크플로와 비교하여 문서화된 할당량을 검토하고 워크플로우 할당량 검토하십시오. 할당량을 초과했다는 오류 메시지는 없으므로 직접 조사해야 합니다.

    • 공간 할당량당 최대 워크플로 수를 초과한 경우 일부 워크플로를 삭제한 다음 워크플로 정의 파일에 대해 테스트 커밋을 수행하십시오. 테스트 커밋의 예로는 파일에 공간을 추가하는 경우를 들 수 있습니다.

    • 최대 워크플로 정의 파일 크기 할당량을 초과한 경우 워크플로 정의 파일을 변경하여 길이를 줄이십시오.

    • 단일 소스 이벤트 할당량에서 처리되는 워크플로 파일의 최대 수를 초과한 경우 테스트 커밋을 여러 번 수행하십시오. 각 커밋의 최대 워크플로 수보다 적은 수를 수정하십시오.

    • 유료 티어 청구를 활성화하여 워크플로 할당량을 늘리세요. 자세한 내용은 Amazon CodeCatalyst 관리자 안내서의 청구 관리를 참조하십시오.

워크플로를 생성하거나 업데이트할 수 없습니다.

문제: 워크플로를 만들거나 업데이트하고 싶은데 변경 내용을 적용하려고 하면 오류가 나타납니다.

가능한 해결 방법: 프로젝트 또는 스페이스에서 맡은 역할에 따라 코드를 프로젝트의 소스 리포지토리로 푸시할 수 있는 권한이 없을 수 있습니다. 워크플로용 YAML 파일은 리포지토리에 저장됩니다. 자세한 정보는 워크플로 정의 파일을 참조하세요. 스페이스 관리자 역할, 프로젝트 관리자 역할, 기여자 역할 모두 코드를 커밋하고 프로젝트의 리포지토리에 푸시할 수 있는 권한을 가집니다.

기여자 역할이 있지만 특정 브랜치에서 워크플로 YAML을 만들거나 변경 내용을 커밋할 수 없는 경우, 해당 분기에 대해 해당 역할을 가진 사용자가 특정 브랜치로 코드를 푸시하지 못하도록 하는 분기 규칙이 구성되어 있을 수 있습니다. 다른 브랜치에서 워크플로를 만들거나 변경 내용을 다른 브랜치에 커밋해 보세요. 자세한 내용은 브랜치 규칙을 사용하여 브랜치에 허용된 작업 관리을(를) 참조하세요.