本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:在工作流程中使用 GitHub動作的 Lint 程式碼
在本教程中,您將超級林特 GitHub 動作添加到 Amazon CodeCatalyst 工作流app.js
。然後,您可以修正報告的問題,並再次執行工作流程,以查看修正程式是否有效。
必要條件
在開始之前,您需要:
-
具有已連接的 CodeCatalyst 空間 AWS 帳戶。如需詳細資訊,請參閱 建立空間。
-
您空間中的 CodeCatalyst 空白專案稱為
codecatalyst-linter-project
. 選擇從頭開始選項以創建此項目。如需詳細資訊,請參閱 在 Amazon 中創建一個空項目 CodeCatalyst。
步驟 1:建立來源儲存庫
在此步驟中,您可以在中建立來源儲存庫 CodeCatalyst。在本教學課程中,app.js
您將使用此儲存庫來儲存範例應用程式來源檔案。
如需來源儲存庫的詳細資訊,請參閱建立來源儲存庫。
若要建立來源儲存庫
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
導航到您的項目,
codecatalyst-linter-project
。 -
在瀏覽窗格中,選擇 [程式碼],然後選擇 [原始碼儲存庫]。
-
選擇 [新增儲存庫],然後選擇 [建立儲存庫]
-
在存放庫名稱中,輸入:
codecatalyst-linter-source-repository
-
選擇建立。
步驟 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
。保留其他預設選項。 -
選擇 Commit (遞交)。
現在,您已經創建了一個名為
app.js
.
步驟 3:建立執行超林特動作的工作流程
在此步驟中,您會建立工作流程,當您將程式碼推送至來源儲存庫時,執行 SuperLint 動作。工作流程包含下列您在 YAML 檔案中定義的建置區塊:
-
觸發器 — 當您將變更推送至來源儲存庫時,此觸發器會自動啟動工作流程執行。關於觸發條件的詳細資訊,請參閱 使用觸發器啟動工作流程自動執行。
-
「動GitHub 作」動作 — 在觸發器上,「動作」GitHub 動作會執行超級林特動作,進而檢查來源儲存庫中的所有檔案。如果短絨發現問題,工作流程動作將失敗。
若要建立執行超級林特動作的工作流程
-
在 CodeCatalyst 主控台中,選擇您的專案
codecatalyst-linter-project
。 -
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇建立工作流程。
-
針對來源儲存庫,選擇
codecatalyst-linter-source-repository
。 -
對於「分支」,請選擇
main
。 -
選擇建立。
刪除 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
依照本程序下列步驟中的指示,以 SuperLint 動作程式碼取代。 -
前往 Marketplace 中的超級林特頁面
。 GitHub -
在 [小寫] 底下
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
-
(選擇性) 選擇 [驗證] 以確定 YAML 程式碼在認可之前是有效的。
-
選擇提交,輸入提交信息,選擇您的
codecatalyst-linter-source-repository
存儲庫,然後再次選擇提交。您現在已建立工作流程。工作流程執行會自動啟動,因為工作流程頂端定義了觸發器。
若要檢視進行中的工作流程執行
-
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇您剛建立的工作流程:
codecatalyst-linter-workflow
。 -
在工作流程圖中,選擇SuperLinterAction。
-
等待動作失敗。這是預期的失敗,因為 linter 在代碼中發現了問題。
-
讓 CodeCatalyst 主機保持開啟狀態,然後移至步驟 4:修復超級棉絨發現的問題。
步驟 4:修復超級棉絨發現的問題
超級林特應該在代碼中發現問題,以及源app.js
代碼庫中包含的README.md
文件。
解決毛絨發現的問題
-
在 CodeCatalyst 主控台中,選擇 [記錄檔] 索引標籤,然後選擇 [Lint 程式碼基底]。
系統會顯示「超級林特」動作所產生的記錄檔。
-
在超級林特日誌中,向下滾動到 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 主控台。
https://codecatalyst.aws/ -
刪除
codecatalyst-linter-source-repository
。 -
刪除
codecatalyst-linter-workflow
。
在本教程中,您學會了如何將超級林特 GitHub 操作添加到工作 CodeCatalyst 流中,以便 lint 一些代碼。