기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: GitHub 작업을 사용한 린트 코드
이 자습서에서는 Amazon CodeCatalyst 워크플로에 Super-Linter GitHub 작업app.js
)을 린트합니다. 그런 다음 보고된 문제를 수정하고 워크플로를 다시 실행하여 수정 사항이 제대로 작동하는지 확인합니다.
작은 정보
AWS CloudFormation 템플릿과 같은 YAML 파일을 린트하기 위해 Super-Linter를 사용하는 것이 좋습니다.
주제
사전 조건
시작하려면 다음이 필요합니다.
-
AWS 계정가 연결된 CodeCatalyst 스페이스. 자세한 내용은 스페이스 생성 섹션을 참조하십시오.
-
CodeCatalyst 스페이스의 이름이
codecatalyst-linter-project
인 빈 프로젝트로. 처음부터 시작 옵션을 선택하여 이 프로젝트를 생성합니다.자세한 내용은 Amazon CodeCatalyst에서 빈 프로젝트 생성 섹션을 참조하십시오.
1단계: 소스 리포지토리 생성
이 단계에서는 CodeCatalyst에 소스 리포지토리를 생성합니다. 이 리포지토리를 사용하여 이 자습서의 샘플 애플리케이션 소스 파일인 app.js
를 저장합니다.
소스 리포지토리에 대한 자세한 정보는 소스 리포지토리 생성 섹션을 참조하세요.
소스 리포지토리를 생성하려면
https://codecatalyst.aws/
에서 CodeCatalyst 콘솔을 엽니다. -
codecatalyst-linter-project
프로젝트로 이동합니다. -
탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.
-
리포지토리 추가를 선택하고 리포지토리 생성을 선택합니다.
-
리포지토리 이름에 다음과 같이 입력합니다.
codecatalyst-linter-source-repository
-
생성(Create)을 선택합니다.
2단계: app.js 파일 추가
이 단계에서는 원본 리포지토리에 app.js
파일을 추가합니다. app.js
에는 린터에서 찾을 수 있는 몇 가지 실수가 있는 함수 코드가 포함되어 있습니다.
app.js 파일을 추가하려면
-
CodeCatalyst 콘솔에서
codecatalyst-linter-project
프로젝트를 선택합니다. -
탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.
-
소스 리포지토리 목록에서
codecatalyst-linter-source-repository
리포지토리를 선택합니다. -
파일에서 파일 생성을 선택합니다.
-
다음 코드를 텍스트 상자에 입력합니다.
// const axios = require('axios') // const url = 'http://checkip.amazonaws.com/'; let response; /** * * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format * @param {Object} event - API Gateway Lambda Proxy Input Format * * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html * @param {Object} context * * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html * @returns {Object} object - API Gateway Lambda Proxy Output Format * */ exports.lambdaHandler = async (event, context) => { try { // const ret = await axios(url); response = { statusCode: 200, 'body': JSON.stringify({ message: 'hello world' // location: ret.data.trim() }) } } catch (err) { console.log(err) return err } return response }
-
파일 이름에
app.js
를 입력합니다. 다른 기본 옵션을 유지합니다. -
커밋을 선택합니다.
app.js
새 역할이 생성되었습니다.
3단계: Super-Linter 작업을 실행하는 워크플로 생성
이 단계에서는 코드를 소스 리포지토리로 푸시할 때 Super-Linter 작업을 실행하는 워크플로를 생성합니다. 워크플로는 YAML 파일에 정의한 다음 구성 요소로 구성됩니다.
-
트리거 - 이 트리거는 소스 리포지토리에 변경 사항을 푸시할 때 워크플로 실행을 자동으로 시작합니다. 트리거에 대한 자세한 내용은 트리거를 사용하여 워크플로 실행 자동 시작 주제를 참조하십시오.
-
'GitHub Actions' 작업 - 트리거 시 GitHub Actions 작업은 Super-Linter 작업을 실행하여 소스 리포지토리의 모든 파일을 검사합니다. 리터에서 문제를 발견하면 워크플로 작업이 실패합니다.
Super-Linter 작업을 실행하는 워크플로를 생성하려면
-
CodeCatalyst 콘솔에서
codecatalyst-linter-project
프로젝트를 선택합니다. -
탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
워크플로 생성을 선택합니다.
-
소스 리포지토리에서
codecatalyst-linter-source-repository
를 선택합니다. -
브랜치에서
main
을 선택합니다. -
생성(Create)을 선택합니다.
YAML 샘플 코드를 삭제합니다.
-
다음 YAML을 추가합니다:
Name: codecatalyst-linter-workflow SchemaVersion: "1.0" Triggers: - Type: PUSH Branches: - main Actions: SuperLinterAction: Identifier: aws/github-actions-runner@v1 Configuration: Steps:
github-action-code
이 절차의 다음 단계에 설명된 대로 앞의 코드에서
github-action-code
를 Super-Linter 작업 코드로 바꿉니다. -
GitHub Marketplace의 Super-Linter 페이지로
이동합니다. -
steps:
(소문자)에서 코드를 찾아 CodeCatalyst 워크플로의Steps:
(대문자)에 붙여 넣습니다.다음 코드와 같이 CodeCatalyst 표준에 맞게 GitHub 작업 코드를 조정합니다.
이제 CodeCatalyst 워크플로는 다음과 같습니다.
Name: codecatalyst-linter-workflow SchemaVersion: "1.0" Triggers: - Type: PUSH Branches: - main Actions: SuperLinterAction: Identifier: aws/github-actions-runner@v1 Configuration: Steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: "true" DEFAULT_BRANCH: main
-
(선택 사항) 커밋하기 전에 YAML 코드가 유효한지 확인하려면 검증을 선택합니다.
-
커밋을 선택하고 커밋 메시지를 입력한 다음
codecatalyst-linter-source-repository
리포지토리를 선택하고 커밋을 다시 선택합니다.이제 워크플로를 생성했습니다. 워크플로 상단에 정의된 트리거로 인해 워크플로 실행이 자동으로 시작됩니다.
진행 중인 워크플로 실행을 보려면
-
탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
방금 생성한
codecatalyst-linter-workflow
워크플로를 선택합니다. -
워크플로 다이어그램에서 SuperLinterAction을 선택합니다.
-
작업이 실패할 때까지 기다립니다. 이 실패는 코드에서 linter가 문제를 발견했기 때문에 예상됩니다.
-
CodeCatalyst 콘솔을 열어 두고 4단계: Super-Linter에서 발견한 문제 해결로 이동합니다.
4단계: Super-Linter에서 발견한 문제 해결
Super-Linter는 app.js
코드와 소스 리포지토리에 포함된 README.md
파일에서 문제를 발견했어야 합니다.
린터에서 발견된 문제를 해결하려면
-
CodeCatalyst 콘솔에서 로그 탭을 선택한 다음 Lint Code Base를 선택합니다.
생성된 슈퍼 린터 작업이 표시되는 로그입니다.
-
슈퍼 린터 로그에서 90행을 따라 아래로 스크롤하면 문제의 시작을 찾을 수 있습니다. 다음처럼 보일 것입니다.
/github/workspace/hello-world/app.js:3:13: Extra semicolon. /github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed. /github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found. /github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4. /github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
-
소스 리포지토리에서
app.js
및README.md
를 수정하고 변경 사항을 커밋합니다.작은 정보
README.md
를 수정하려면 다음과 같이 코드 블록에markdown
을 추가합니다.```markdown Setup examples: ... ```
변경하면 다른 워크플로가 자동으로 실행됩니다. 워크플로가 완료될 때까지 기다립니다. 모든 문제를 해결한 경우 워크플로가 성공해야 합니다.
정리
CodeCatalyst에서 정리하여 환경에서 이 자습서의 트레이스를 제거합니다.
CodeCatalyst에서 정리하려면
-
https://codecatalyst.aws/
에서 CodeCatalyst 콘솔을 엽니다. -
codecatalyst-linter-source-repository
를 삭제합니다. -
codecatalyst-linter-workflow
를 삭제합니다.
이 자습서에서는 일부 코드를 린트하기 위해 CodeCatalyst 워크플로에 Super-Linter GitHub 작업을 추가하는 방법을 배웠습니다.