튜토리얼: 액션을 GitHub 사용한 린트 코드 - Amazon CodeCatalyst

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

튜토리얼: 액션을 GitHub 사용한 린트 코드

이 자습서에서는 Amazon 워크플로에 슈퍼 린터 GitHub 액션을 추가합니다. CodeCatalyst Super-Linter 작업은 코드를 검사하고 코드에 오류가 있는 영역, 형식 지정 문제, 의심스러운 구문을 찾아 결과를 콘솔에 출력합니다. CodeCatalyst 워크플로에 린터를 추가한 후 워크플로를 실행하여 샘플 Node.js 응용 프로그램 () 을 린트합니다. app.js 그런 다음 보고된 문제를 수정하고 워크플로를 다시 실행하여 수정 사항이 제대로 적용되었는지 확인합니다.

사전 조건

시작하기 전에 필요한 사항은 다음과 같습니다.

  • 연결된 CodeCatalyst 공간 AWS 계정. 자세한 내용은 공백 생성 단원을 참조하십시오.

  • CodeCatalyst 스페이스에 있는 빈 프로젝트가 codecatalyst-linter-project 호출되었습니다. 처음부터 시작 옵션을 선택하여 이 프로젝트를 생성합니다.

    자세한 내용은 Amazon에서 빈 프로젝트 생성 CodeCatalyst 단원을 참조하십시오.

1단계: 소스 리포지토리 만들기

이 단계에서는 에서 소스 리포지토리를 생성합니다 CodeCatalyst. 이 자습서에서는 이 리포지토리를 사용하여 샘플 애플리케이션 소스 파일을 저장합니다. app.js

소스 리포지토리에 대한 자세한 내용은 을 참조하십시오. 소스 리포지토리 생성

소스 리포지토리를 생성하려면
  1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 엽니다.

  2. 프로젝트로 이동합니다codecatalyst-linter-project.

  3. 탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.

  4. 리포지토리 추가를 선택하고 리포지토리 생성을 선택합니다.

  5. 리포지토리 이름에 다음을 입력합니다.

    codecatalyst-linter-source-repository
  6. 생성(Create)을 선택합니다.

2단계: app.js 파일 추가

이 단계에서는 소스 리포지토리에 app.js 파일을 추가합니다. app.js여기에는 린터가 발견할 수 있는 몇 가지 실수가 있는 함수 코드가 들어 있습니다.

app.js 파일을 추가하려면
  1. CodeCatalyst 콘솔에서 프로젝트 () 를 선택합니다codecatalyst-linter-project.

  2. 탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.

  3. 소스 리포지토리 목록에서 리포지토리를 선택합니다. codecatalyst-linter-source-repository

  4. 파일에서 파일 생성을 선택합니다.

  5. 텍스트 상자에 다음 코드를 입력합니다.

    // 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 }
  6. 파일 이름에 를 입력합니다app.js. 다른 기본 옵션은 그대로 유지합니다.

  7. 커밋을 선택합니다.

    라는 파일이 생성되었습니다app.js.

3단계: 수퍼-린터 작업을 실행하는 워크플로우 만들기

이 단계에서는 코드를 소스 리포지토리로 푸시할 때 Super-Linter 작업을 실행하는 워크플로를 만듭니다. 워크플로는 파일에 정의하는 다음과 같은 구성 요소로 구성됩니다. YAML

  • 트리거 - 이 트리거는 소스 리포지토리에 변경 내용을 푸시할 때 워크플로 실행을 자동으로 시작합니다. 트리거에 대한 자세한 내용은 트리거를 사용하여 자동으로 워크플로 실행 시작 주제를 참조하십시오.

  • GitHub 'Actions' 작업 — 트리거 시 Actions 작업은 Super-Linter GitHub 작업을 실행하며, Super-Linter 작업은 차례로 소스 저장소의 모든 파일을 검사합니다. 린터가 문제를 발견하면 워크플로 작업이 실패합니다.

Super-Linter 작업을 실행하는 워크플로를 만들려면
  1. CodeCatalyst 콘솔에서 프로젝트를 선택합니다. codecatalyst-linter-project

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

  3. 워크플로 만들기를 선택합니다.

  4. 소스 리포지토리의 경우 선택합니다codecatalyst-linter-source-repository.

  5. Branch의 경우 선택하십시오main.

  6. 생성(Create)을 선택합니다.

  7. YAML샘플 코드를 삭제합니다.

  8. 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 액션 코드를 사용하십시오.

  9. 마켓플레이스의 슈퍼-린터 페이지로 이동하세요. GitHub

  10. 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
  11. (선택 사항) [Validate] 를 선택하여 커밋하기 전에 YAML 코드가 유효한지 확인합니다.

  12. [커밋] 을 선택하고 커밋 메시지를 입력한 다음 codecatalyst-linter-source-repository 리포지토리를 선택하고 [커밋] 을 다시 선택합니다.

    이제 워크플로가 생성되었습니다. 워크플로 맨 위에 정의된 트리거로 인해 워크플로 실행이 자동으로 시작됩니다.

실행 중인 워크플로를 보려면
  1. 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.

  2. 방금 만든 워크플로를 선택합니다. codecatalyst-linter-workflow

  3. 워크플로 다이어그램에서 선택합니다 SuperLinterAction.

  4. 작업이 실패할 때까지 기다리세요. 린터가 코드에서 문제를 발견했기 때문에 이 오류가 발생할 것으로 예상됩니다.

  5. CodeCatalyst 콘솔을 열어 두고 로 이동하십시오. 4단계: 슈퍼 린터가 발견한 문제 해결

4단계: 슈퍼 린터가 발견한 문제 해결

Super-Linter는 소스 리포지토리에 포함된 README.md 파일뿐만 아니라 app.js 코드에서도 문제를 발견했을 것입니다.

린터가 발견한 문제를 수정하기 위해
  1. CodeCatalyst 콘솔에서 로그 탭을 선택한 다음 린트 코드 베이스를 선택합니다.

    Super-Linter 작업에서 생성된 로그가 표시됩니다.

  2. 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.
  3. 소스 리포지토리에서 app.js 수정하고 README.md 변경 사항을 적용하십시오.

    작은 정보

    README.md markdown 수정하려면 다음과 같이 코드 블록에 추가하십시오.

    ```markdown Setup examples: ... ```

    변경하면 다른 워크플로가 자동으로 실행됩니다. 워크플로가 완료될 때까지 기다리세요. 모든 문제를 해결했으면 워크플로가 성공적으로 완료될 것입니다.

정리

CodeCatalyst 정리하여 환경에서 이 자습서의 흔적을 제거하세요.

에서 정리하려면 CodeCatalyst
  1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 여세요.

  2. 삭제codecatalyst-linter-source-repository.

  3. 삭제codecatalyst-linter-workflow.

이 자습서에서는 코드를 린트하기 위해 CodeCatalyst 워크플로에 Super-Linter GitHub Action을 추가하는 방법을 배웠습니다.