チュートリアル: アクションを使用してコードをリントする GitHub - Amazon CodeCatalyst

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

チュートリアル: アクションを使用してコードをリントする GitHub

このチュートリアルでは、Amazon CodeCatalyst ワークフローに Super-Linter GitHub アクションを追加します。Super-Linter アクションは、コードを検査し、コードにエラー、フォーマットの問題、疑わしいコンストラクトがある領域を見つけ、結果をコンソールに出力します CodeCatalyst)。ワークフローに linter を追加したら、ワークフローを実行してサンプルの Node.js アプリケーション (app.js) をリントします。次に、報告された問題を修正し、ワークフローを再度実行して、修正が機能したかどうかを確認します。

ヒント

テンプレート などのYAMLAWS CloudFormation ファイルを lint するには、 Super-Linter の使用を検討してください。

前提条件

開始する前に、以下が必要です。

  • が接続されている 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. [作成] を選択します。

ステップ 2: app.js ファイルを追加する

このステップでは、ソースリポジトリに app.js ファイルを追加します。には、linter が検出するいくつかのミスがある関数コード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: Super-Linter アクションを実行するワークフローを作成する

このステップでは、ソースリポジトリにコードをプッシュするときに Super-Linter アクションを実行するワークフローを作成します。ワークフローは、 YAML ファイルで定義する次の構成要素で構成されます。

  • トリガー — このトリガーは、変更をソースリポジトリにプッシュすると、ワークフローの実行を自動的に開始します。トリガーについての詳細は、「トリガーを使用してワークフローを自動的に開始する」を参照してください。

  • GitHub 「アクション」アクション – トリガー時に、GitHub アクションアクションは Super-Linter アクションを実行し、これによりソースリポジトリ内のすべてのファイルが検査されます。linter が問題を検出すると、ワークフローアクションは失敗します。

Super-Linter アクションを実行するワークフローを作成するには
  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 この手順の次の手順で説明するように、 を Super-Linter アクションコードで使用します。

  9. GitHub Marketplace の Super-Linter ページに移動します。

  10. steps:(小文字) でコードを検索し、 Steps: (大文字) でワークフローに CodeCatalyst貼り付けます。

    次のコードに示すように、 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. (オプション) 検証 を選択して、コミットする前にYAMLコードが有効であることを確認します。

  12. コミット を選択し、コミットメッセージ を入力し、リポジトリ codecatalyst-linter-source-repository を選択し、再度コミット を選択します。

    これでワークフローが作成されました。ワークフローの実行は、ワークフローの上部で定義されたトリガーが原因で自動的に開始されます。

進行中のワークフロー実行を表示するには
  1. ナビゲーションペインで CI/CD を選択し、ワークフロー を選択します。

  2. 先ほど作成したワークフローを選択します: codecatalyst-linter-workflow

  3. ワークフロー図で、 を選択しますSuperLinterAction

  4. アクションが失敗するのを待ちます。この障害は、 linter がコードで問題を検出したために予想されます。

  5. CodeCatalyst コンソールを開いたままにして、 に進みますステップ 4: Super-Linter が検出した問題を修正する

ステップ 4: Super-Linter が検出した問題を修正する

Super-Linter は、ソースリポジトリに含まれているREADME.mdファイルだけでなく、app.jsコードにも問題があるはずです。

linter が検出した問題を修正するには
  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. ソースリポジトリREADME.mdapp.jsと を修正し、変更をコミットします。

    ヒント

    を修正するにはREADME.md、次のように markdownをコードブロックに追加します。

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

    変更により、別のワークフローが自動的に実行されます。ワークフローが終了するのを待ちます。すべての問題を修正した場合、ワークフローは成功します。

クリーンアップ

でクリーンアップ CodeCatalyst して、このチュートリアルのトレースを環境から削除します。

でクリーンアップするには CodeCatalyst
  1. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  2. を削除しますcodecatalyst-linter-source-repository

  3. を削除しますcodecatalyst-linter-workflow

このチュートリアルでは、スーパーリンター GitHub アクションを CodeCatalyst ワークフローに追加してコードをリントする方法を学習しました。