기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
튜토리얼: 액션을 GitHub 사용한 린트 코드
이 자습서에서는 Amazon 워크플로에 슈퍼 린터 GitHub 액션을app.js
그런 다음 보고된 문제를 수정하고 워크플로를 다시 실행하여 수정 사항이 제대로 적용되었는지 확인합니다.
사전 조건
시작하기 전에 필요한 사항은 다음과 같습니다.
-
연결된 CodeCatalyst 공간 AWS 계정. 자세한 내용은 공백 생성 단원을 참조하십시오.
-
CodeCatalyst 스페이스에 있는 빈 프로젝트가
codecatalyst-linter-project
호출되었습니다. 처음부터 시작 옵션을 선택하여 이 프로젝트를 생성합니다.자세한 내용은 Amazon에서 빈 프로젝트 생성 CodeCatalyst 단원을 참조하십시오.
1단계: 소스 리포지토리 만들기
이 단계에서는 에서 소스 리포지토리를 생성합니다 CodeCatalyst. 이 자습서에서는 이 리포지토리를 사용하여 샘플 애플리케이션 소스 파일을 저장합니다. app.js
소스 리포지토리에 대한 자세한 내용은 을 참조하십시오. 소스 리포지토리 생성
소스 리포지토리를 생성하려면
-
프로젝트로 이동합니다
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 작업을 실행하는 워크플로를 만듭니다. 워크플로는 파일에 정의하는 다음과 같은 구성 요소로 구성됩니다. YAML
-
트리거 - 이 트리거는 소스 리포지토리에 변경 내용을 푸시할 때 워크플로 실행을 자동으로 시작합니다. 트리거에 대한 자세한 내용은 트리거를 사용하여 자동으로 워크플로 실행 시작 주제를 참조하십시오.
-
GitHub 'Actions' 작업 — 트리거 시 Actions 작업은 Super-Linter GitHub 작업을 실행하며, Super-Linter 작업은 차례로 소스 저장소의 모든 파일을 검사합니다. 린터가 문제를 발견하면 워크플로 작업이 실패합니다.
Super-Linter 작업을 실행하는 워크플로를 만들려면
-
CodeCatalyst 콘솔에서 프로젝트를 선택합니다.
codecatalyst-linter-project
-
탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
워크플로 만들기를 선택합니다.
-
소스 리포지토리의 경우 선택합니다
codecatalyst-linter-source-repository
. -
Branch의 경우 선택하십시오
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 -
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
-
(선택 사항) [Validate] 를 선택하여 커밋하기 전에 YAML 코드가 유효한지 확인합니다.
-
[커밋] 을 선택하고 커밋 메시지를 입력한 다음
codecatalyst-linter-source-repository
리포지토리를 선택하고 [커밋] 을 다시 선택합니다.이제 워크플로가 생성되었습니다. 워크플로 맨 위에 정의된 트리거로 인해 워크플로 실행이 자동으로 시작됩니다.
실행 중인 워크플로를 보려면
-
탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
방금 만든 워크플로를 선택합니다.
codecatalyst-linter-workflow
-
워크플로 다이어그램에서 선택합니다 SuperLinterAction.
-
작업이 실패할 때까지 기다리세요. 린터가 코드에서 문제를 발견했기 때문에 이 오류가 발생할 것으로 예상됩니다.
-
CodeCatalyst 콘솔을 열어 두고 로 이동하십시오. 4단계: 슈퍼 린터가 발견한 문제 해결
4단계: 슈퍼 린터가 발견한 문제 해결
Super-Linter는 소스 리포지토리에 포함된 README.md
파일뿐만 아니라 app.js
코드에서도 문제를 발견했을 것입니다.
린터가 발견한 문제를 수정하기 위해
-
CodeCatalyst 콘솔에서 로그 탭을 선택한 다음 린트 코드 베이스를 선택합니다.
Super-Linter 작업에서 생성된 로그가 표시됩니다.
-
Super-Linter 로그에서 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
-
삭제
codecatalyst-linter-source-repository
. -
삭제
codecatalyst-linter-workflow
.
이 자습서에서는 코드를 린트하기 위해 CodeCatalyst 워크플로에 Super-Linter GitHub Action을 추가하는 방법을 배웠습니다.