Tutorial: código Lint usando uma ação do GitHub
Neste tutorial, você adiciona a ação do GitHub Super-Linterapp.js
). Depois, você corrige os problemas relatados e executa o fluxo de trabalho novamente para ver se as correções funcionaram.
dica
Pense em usar o Super-Linter para aplicar o código lint a arquivos YAML, como modelos do AWS CloudFormation.
Tópicos
Pré-requisitos
Antes de começar, você precisa de:
-
Um espaço do CodeCatalyst com uma Conta da AWS conectada. Para ter mais informações, consulte Criar um espaço.
-
Um projeto vazio no espaço do CodeCatalyst chamado
codecatalyst-linter-project
. Selecione a opção Começar do zero para criar esse projeto.Para ter mais informações, consulte Criação de um projeto vazio no Amazon CodeCatalyst.
Etapa 1: criar um repositório de origem
Nesta etapa, você cria um repositório de origem no CodeCatalyst. Você usará esse repositório para armazenar o arquivo de origem da aplicação de exemplo, app.js
, para este tutorial.
Para ter mais informações sobre repositórios de origem, consulte Criar um repositório de origem.
Como criar um repositório de origem
Abra o console do CodeCatalyst em https://codecatalyst.aws/
. -
Navegue até o projeto,
codecatalyst-linter-project
. -
No painel de navegação, selecione Código e, depois, selecione Repositórios de origem.
-
Escolha Adicionar repositório e selecione Criar repositório.
-
Em Nome do repositório, insira:
codecatalyst-linter-source-repository
-
Escolha Criar.
Etapa 2: adicionar um arquivo app.js
Nesta etapa, você vai adicionar um arquivo app.js
ao repositório de origem. O app.js
contém um código de função que contém alguns erros que o linter encontrará.
Para adicionar o arquivo app.js
-
No console do CodeCatalyst, escolha seu projeto,
codecatalyst-linter-project
. -
No painel de navegação, selecione Código e, depois, selecione Repositórios de origem.
-
Na lista de repositórios de origem, escolha o seu repositório,
codecatalyst-linter-source-repository
. -
Em Arquivos, selecione Criar arquivo.
-
Na caixa de texto, insira o código a seguir:
// 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 }
-
Em Nome do arquivo, insira
app.js
. Mantenha as outras opções padrão. -
Escolha Commit (Confirmar).
Agora você criou um chamado
app.js
.
Etapa 3: criar um fluxo de trabalho que execute a ação Super-Linter
Nesta etapa, você vai criar um fluxo de trabalho que executa a ação Super-Linter ao enviar código para o repositório de origem. O fluxo de trabalho consiste nos seguintes componentes, que você define em um arquivo YAML:
-
Um gatilho – Esse gatilho inicia a execução automática do fluxo de trabalho quando você envia uma alteração ao seu repositório de origem. Para ter mais informações sobre gatilhos, consulte Início da execução automática de um fluxo de trabalho usando gatilhos.
-
Uma ação “GitHub Actions” — No gatilho, a ação GitHub Actions executa a ação Super-Linter, que, por sua vez, inspeciona todos os arquivos no repositório de origem. Se o linter encontrar um problema, a ação do fluxo de trabalho falhará.
Para criar um fluxo de trabalho que execute a ação Super-Linter
-
No console do CodeCatalyst, escolha seu projeto,
codecatalyst-linter-project
. -
No painel de navegação, escolha CI/CD e Fluxos de trabalho.
-
Selecione Criar fluxo de trabalho.
-
Em Repositório de origem, selecione
codecatalyst-linter-source-repository
. -
Em Ramificação, selecione
main
. -
Escolha Criar.
Exclua o código de amostra YAML.
-
Adicione o seguinte 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
No código anterior, substitua
github-action-code
pelo código de ação Super-Linter, conforme instruído nas etapas a seguir deste procedimento. -
Acesse a página Super-Linter
no GitHub Marketplace. -
Em
steps:
(minúsculas), localize o código e cole-o no fluxo de trabalho do CodeCatalyst emSteps:
(maiúsculas).Ajuste o código da ação do GitHub de acordo com os padrões do CodeCatalyst, conforme mostrado no código a seguir.
O fluxo de trabalho do CodeCatalyst agora tem a seguinte aparência:
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
-
(Opcional) Selecione Validar para garantir que o código YAML seja válido antes de confirmar.
-
Selecione Confirmar, insira uma Mensagem de confirmação, escolha seu repositório do
codecatalyst-linter-source-repository
e selecione Confirmar novamente.Agora você criou um fluxo de trabalho. A execução de um fluxo de trabalho é iniciada automaticamente devido ao gatilho definido na parte superior do fluxo de trabalho.
Para visualizar a execução do fluxo de trabalho em andamento
-
No painel de navegação, escolha CI/CD e Fluxos de trabalho.
-
Escolha o fluxo de trabalho que você acabou de criar:
codecatalyst-linter-workflow
. -
No diagrama do fluxo de trabalho, selecione SuperLinterAction.
-
Aguarde a falha da ação. Essa falha é esperada porque o linter encontrou problemas no código.
-
Deixe o console do CodeCatalyst aberto e vá para Etapa 4: corrigir problemas encontrados pelo Super-Linter.
Etapa 4: corrigir problemas encontrados pelo Super-Linter
O Super-Linter deve ter encontrado problemas no código app.js
, bem como no arquivo README.md
incluído no seu repositório de origem.
Para corrigir os problemas encontrados pelo linter
-
No console do CodeCatalyst, escolha a guia Logs e, depois, selecione Lint Code Base.
Os logs gerados pela ação Super-Linter são exibidos.
-
Nos logs do Super-Linter, role para baixo até a linha 90, onde você encontra o início dos problemas. Eles são semelhantes a:
/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.
-
Corrija
app.js
eREADME.md
no repositório de origem e confirme as alterações.dica
Para corrigir o
README.md
, adicionemarkdown
ao bloco de código, assim:```markdown Setup examples: ... ```
Suas alterações iniciam outro fluxo de trabalho executado automaticamente. Aguarde a conclusão do fluxo de trabalho. Se você corrigiu todos os problemas, o fluxo de trabalho deverá ser bem-sucedido.
Limpeza
Limpe no CodeCatalyst para remover os traços deste tutorial do seu ambiente.
Para limpar no CodeCatalyst
-
Abra o console do CodeCatalyst em https://codecatalyst.aws/
. -
Exclua
codecatalyst-linter-source-repository
. -
Exclua
codecatalyst-linter-workflow
.
Neste tutorial, você aprendeu como adicionar a ação do GitHub Super-Linter a um fluxo de trabalho do CodeCatalyst para aplicar lint a alguns códigos.