教學課程:在工作流程中使用 GitHub動作的 Lint 程式碼 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:在工作流程中使用 GitHub動作的 Lint 程式碼

在本教程中,您將超級林特 GitHub 動作添加到 Amazon CodeCatalyst 工作流程。Super-Linter 動作會檢查程式碼、尋找程式碼有錯誤、格式化問題和可疑結構的區域,然後將結果輸出至主控台)。 CodeCatalyst將棉絨加入至工作流程之後,您可以執行工作流程以連接範例 Node.js 應用程式 () app.js。然後,您可以修正報告的問題,並再次執行工作流程,以查看修正程式是否有效。

必要條件

在開始之前,您需要:

  • 具有已連接的 CodeCatalyst 空間 AWS 帳戶。如需詳細資訊,請參閱 建立空間

  • 您空間中的 CodeCatalyst 空白專案稱為codecatalyst-linter-project. 選擇從頭開始選項以創建此項目。

    如需詳細資訊,請參閱 在 Amazon 中創建一個空項目 CodeCatalyst

步驟 1:建立來源儲存庫

在此步驟中,您可以在中建立來源儲存庫 CodeCatalyst。在本教學課程中,app.js您將使用此儲存庫來儲存範例應用程式來源檔案。

如需來源儲存庫的詳細資訊,請參閱建立來源儲存庫

若要建立來源儲存庫
  1. 請在以下位置開啟 CodeCatalyst 主控台。 https://codecatalyst.aws/

  2. 導航到您的項目,codecatalyst-linter-project

  3. 在瀏覽窗格中,選擇 [程式碼],然後選擇 [原始碼儲存庫]。

  4. 選擇 [新增儲存庫],然後選擇 [建立儲存庫]

  5. 存放庫名稱中,輸入:

    codecatalyst-linter-source-repository
  6. 選擇建立

步驟 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. 選擇 Commit (遞交)。

    現在,您已經創建了一個名為app.js.

步驟 3:建立執行超林特動作的工作流程

在此步驟中,您會建立工作流程,當您將程式碼推送至來源儲存庫時,執行 SuperLint 動作。工作流程包含下列您在 YAML 檔案中定義的建置區塊:

  • 觸發器 — 當您將變更推送至來源儲存庫時,此觸發器會自動啟動工作流程執行。關於觸發條件的詳細資訊,請參閱 使用觸發器啟動工作流程自動執行

  • 「動GitHub 作」動作 — 在觸發器上,「動作」GitHub 動作會執行超級林特動作,進而檢查來源儲存庫中的所有檔案。如果短絨發現問題,工作流程動作將失敗。

若要建立執行超級林特動作的工作流程
  1. 在 CodeCatalyst 主控台中,選擇您的專案codecatalyst-linter-project

  2. 在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。

  3. 選擇建立工作流程

  4. 針對來源儲存庫,選擇codecatalyst-linter-source-repository

  5. 對於「分支」,請選擇main

  6. 選擇建立

  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依照本程序下列步驟中的指示,以 SuperLint 動作程式碼取代。

  9. 前往 Marketplace 中的超級林特頁面。 GitHub

  10. 在 [小寫] 底下steps:,尋找程式碼並將其貼到 [Steps:(大寫)] 下的 CodeCatalyst工作流程中。

    調整 GitHub 動作程式碼以符合 CodeCatalyst 標準,如下列程式碼所示。

    您的 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. (選擇性) 選擇 [驗證] 以確定 YAML 程式碼在認可之前是有效的。

  12. 選擇提交,輸入提交信息,選擇您的codecatalyst-linter-source-repository存儲庫,然後再次選擇提交

    您現在已建立工作流程。工作流程執行會自動啟動,因為工作流程頂端定義了觸發器。

若要檢視進行中的工作流程執行
  1. 在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。

  2. 選擇您剛建立的工作流程:codecatalyst-linter-workflow

  3. 在工作流程圖中,選擇SuperLinterAction

  4. 等待動作失敗。這是預期的失敗,因為 linter 在代碼中發現了問題。

  5. 讓 CodeCatalyst 主機保持開啟狀態,然後移至步驟 4:修復超級棉絨發現的問題

步驟 4:修復超級棉絨發現的問題

超級林特應該在代碼中發現問題,以及源app.js代碼庫中包含的README.md文件。

解決毛絨發現的問題
  1. 在 CodeCatalyst 主控台中,選擇 [記錄檔] 索引標籤,然後選擇 [Lint 程式碼基底]。

    系統會顯示「超級林特」動作所產生的記錄檔。

  2. 在超級林特日誌中,向下滾動到 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.jsREADME.md在源存儲庫中並提交更改。

    提示

    要修復README.mdmarkdown請添加到代碼塊,如下所示:

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

    變更會啟動另一個工作流程自動執行。等待工作流程完成。如果您修正了所有問題,工作流程應該會成功。

清除

清理 CodeCatalyst 以從您的環境中移除本自學課程的痕跡。

若要在中進行清理 CodeCatalyst
  1. 請在以下位置開啟 CodeCatalyst 主控台。 https://codecatalyst.aws/

  2. 刪除codecatalyst-linter-source-repository

  3. 刪除codecatalyst-linter-workflow

在本教程中,您學會了如何將超級林特 GitHub 操作添加到工作 CodeCatalyst 流中,以便 lint 一些代碼。