Unidade 2 / 11

Projetando pipelines de CI/CD com inteligência artificial: GitHub Actions e GitLab CI

Ganhos:

  • Capacidade de entender o conceito de CI/CD, a anatomia do pipeline (gatilho, trabalho, etapa, executor, artefato) e as diferenças entre GitHub Actions e GitLab CI e fazer com que a inteligência artificial produza pipelines com o contexto certo
  • Capacidade de verificar e proteger referências secretas, permissões e a existência de componentes chamados no pipeline produzido por inteligência artificial
  • Capacidade de aplicar os princípios de não escrever segredos em texto simples, conceder autorização mínima e manter a implantação controlada separando-a do CI

O coração do software moderno é o pipeline automatizado através do qual o código sai do computador do desenvolvedor até chegar com segurança ao cliente. Esse canal é chamado CI/CD. CI (Integração Contínua) é a compilação e teste automático de cada alteração de código; Seu objetivo é detectar um bug antes mesmo de o desenvolvedor sair do teclado. CD (Entrega/Implantação Contínua) é a preparação automática ou mesmo liberação de código testado. Um pipeline de CI/CD é um arquivo de configuração que define essas etapas em ordem — geralmente escrito em YAML (um formato de texto de configuração legível por humanos).

Escrever esses arquivos YAML manualmente é tedioso, detalhado e sujeito a erros; Se o recuo ultrapassar um espaço, todo o pipeline será quebrado. É aqui que entra a IA: com o contexto certo, ela produz um rascunho funcional em segundos. Mas é seu trabalho entender e verificar o que cada etapa gerada faz — porque esse é o canal que leva seu código para a produção.

Anatomia do pipeline de CI/CD

Cada pipeline consiste em vários conceitos básicos. Você não pode controlar a saída de IA sem saber o seguinte:

  • Gatilho: o que inicia o pipeline? Geralmente um push para uma ramificação, uma solicitação pull (solicitação de mesclagem) ou um agendamento.
  • Job: Unidade lógica que executa uma série de passos; por exemplo, "teste", "construir", "implantar".
  • Step: Um único comando ou ação dentro de um trabalho.
  • Runner: a máquina virtual ou contêiner no qual os trabalhos são executados.
  • Artefato: A saída produzida por um trabalho e usada por trabalhos subsequentes (por exemplo, um arquivo compilado).
  • Segredo: Informações confidenciais que o Pipeline utiliza, mas que não devem permanecer em texto simples no repositório.

GitHub Actions mantém essa definição em arquivos .github/workflows/*.yml; A unidade é fluxo de trabalho → tarefa → hierarquia de etapas. O GitLab CI, por outro lado, usa a estrutura stage → job no arquivo .gitlab-ci.yml. A IA conhece ambas as sintaxes, mas você deve dizer explicitamente qual deseja.

Dica: Ao solicitar pipelines à IA, sempre especifique: plataforma (GitHub Actions ou GitLab CI), linguagem/framework (Node, .NET, Python…), gatilho e se será implantado. Essas quatro informações duplicam a utilidade do resultado.

Passo a passo: Projetando um pipeline com IA

  1. Esclareça o objetivo. Como "executar testes em push to main, construir imagem, mas implantar somente quando a tag for lançada".
  2. Faça com que o esqueleto seja produzido. Peça à IA o fluxo de trabalho básico.
  3. Leia e entenda as etapas. Verifique o que cada linha run e usa faz.
  4. Verifique as referências secretas. Os segredos são chamados com ${{ secrets.NAME }} ou estão incorporados no código?
  5. Experimente localmente/CI. Execute-o em um pequeno repositório de teste, veja o comportamento vermelho-verde (falha na aprovação).
  6. Expanda gradualmente. Primeiro basta adicionar CI (teste), depois construir e, por último, adicionar implantação.

Segurança: segredo e permissão no pipeline

CI/CD é um dos locais onde os segredos mais vazam. Três regras de ouro:

  1. Nunca escreva segredos em texto simples em YAML. Use o repositório secreto da plataforma (GitHub Secrets, GitLab CI/CD Variables) e chame-o com ${{ secrets.X }}.
  2. Menor privilégio. O token que você fornecer ao Pipeline terá apenas a autoridade necessária. Limite isso com o bloco permissions: em GitHub Actions.
  3. Não pressione segredo no log. Linhas como echo $TOKEN revelam o segredo no log. Máscara de plataformas, mas tome cuidado também.
Cuidado: por conveniência, a IA às vezes coloca valores incorporados como password: 123456 ou permissões excessivamente amplas: write-all em pipelines de amostra. Sempre corrija isso: mude o segredo para referência, recolha a permissão.

gráfico de comparação

conceito

Ações do GitHub

CI do GitLab

Arquivo de configuração

.github/fluxos de trabalho/*.yml

.gitlab-ci.yml

unidade de construção

fluxo de trabalho → trabalho → etapa

estágio → trabalho

gatilho

dez:

regras: / apenas:

Convocar segredo

${{secrets.NAME }}

$NAME (variáveis CI/CD)

Componente pronto

usa: action@v4

incluem: /modelo

corredor

continua:

tags:

três mini cases

Caso 1 — Reduzido para 6 horas e 40 minutos. Uma equipe queria automatizar seu processo manual de teste, construção e implantação, mas ninguém estava familiarizado com YAML. Eles descreveram YZ como "projeto Node.js, GitHub Actions, npm test e npm build em push to main, implantar apenas na tag v*". A IA produziu um esqueleto funcional de 40 linhas; A equipe verificou cada etapa e entrou no ar em 40 minutos. Se tivessem escrito à mão, teria sido um dia de trabalho.

Caso 2 — A autenticação detectou uma vulnerabilidade de segurança. Um engenheiro pediu à IA para implantar o fluxo de trabalho. A saída incluía permissões: write-all — o que significa que o token poderia gravar no repositório, pacotes, tudo. O engenheiro percebeu isso e restringiu-o com permissões: {conteúdo: leitura, pacotes: gravação}. Isso eliminou o risco de uma dependência sequestrada substituindo todo o repositório.

Caso 3 — Ação alucinatória. Uma equipe executou os usos sugeridos pela IA: linha actions/deploy-to-aws@v3; Não houve tal ação oficial, a IA inventou o nome. O pipeline explodiu com “ação não encontrada”. Lição: Verifique no Marketplace se cada componente chamado com usa: realmente existe.

Quatro modelos copiáveis

1) Fluxo de trabalho básico de CI:

Escreva um fluxo de trabalho de CI para GitHub Actions. Projeto: [LANGUAGE/FRAMEWORK].Trigger: solicitação push e pull para branch principal. Etapas: instalar dependências, executar testes, executar lint. NÃO Deploy.Runner ubuntu-mais recente. Não é necessário segredo. Anote YAML.

2) Fluxo de trabalho de CD implantado (seguro):

Escreva o fluxo de trabalho de implantação para [PLATFORM]. Deve funcionar apenas na tag 'v*'. Alvo: [MÍDIA/NUVEM]. Regras: - NUNCA escreva segredos em texto simples, chame-os com ${{ secrets.

3) Descreva o pipeline existente:

Descreva o seguinte pipeline [PLATAFORMA] linha por linha: o que cada trabalho faz, em que ordem ele é executado, que segredo ele usa e quais são seus dois pontos de maior risco? Por fim, sugira 3 melhorias.Pipeline: [CONTEÚDO YAML]

4) Acelerar o pipeline:

O pipeline de CI a seguir está sendo executado lentamente (duração: [X min]). Examine o uso do cache, trabalhos paralelos e etapas desnecessárias. Dê 5 sugestões concretas e viáveis ​​de aceleração e anote o impacto estimado de cada uma. Pipeline: [YAML]

Alerta fraco / Alerta forte

Fraco: "Escrever fluxo de trabalho do GitHub Actions."

Resultado: não está claro qual idioma, qual gatilho, se há implantação; A IA fornece uma instância genérica do Node, provavelmente não caberá no seu projeto e pode codificar o segredo.

Forte: "Escreva o fluxo de trabalho do GitHub Actions. Projeto Python 3.12, execute pytest + ruff na solicitação pull e push principal; NÃO implemente; acelere dependências com cache pip; não são necessários segredos. Exporte YAML com comentários."

Diferença: o segundo prompt fornece idioma, gatilho, escopo (sem implantação), expectativa de desempenho e restrição de segurança. A saída funciona diretamente.

Erros comuns

  • Incorporando o segredo no YAML. Senha/token de texto simples é a vulnerabilidade de CI mais comum.
  • Permissão excessivamente ampla. Dê a permissão mínima necessária em vez de escrever tudo.
  • Baseando-se em ação/modelo inexistente. Verifique os usos feitos por IA: linhas no Marketplace.
  • Confundir implantação com CI. O teste pode ser executado em cada push, mas a implantação deve ser controlada e aprovada.
  • Não usando cache. Instalar dependências do zero em cada execução retarda o pipeline em minutos.
  • Tentando o primeiro fluxo de trabalho diretamente no repositório principal. Execute-o primeiro em um repositório de teste.

Em resumo

Pipelines CI/CD são pipes automatizados que movem código com segurança para produção e são definidos com YAML. A IA produz rapidamente projetos funcionais para GitHub Actions e GitLab CI — mas você precisa ser claro sobre a plataforma, a linguagem, o gatilho e o escopo de implantação. Existem três regras de segurança: chamar segredos por referência, conceder privilégios mínimos, não imprimir segredos no log. É sua responsabilidade verificar se cada componente usa:/include: realmente existe e o que cada etapa faz.

Tarefa de aplicativo

Escolha um projeto de amostra simples (até mesmo um "olá mundo" em seu idioma servirá). Faça com que a IA produza um fluxo de trabalho com o modelo "Fluxo de trabalho de CI básico" acima. Depois: (1) escreva com suas próprias palavras o que cada etapa faz; (2) verificar se nenhum segredo está incorporado e se as permissões são restritas; (3) Se possível, execute-o em um tanque de teste e observe o comportamento vermelho-verde.

lista de verificação

  • [] Adicionei a plataforma, linguagem/estrutura, gatilho e escopo de implantação ao meu prompt.
  • [] Entendo o que cada trabalho e etapa faz no YAML gerado.
  • [] Nenhum segredo é texto simples; todas as variáveis ​​${{ secrets.X }} / CI.
  • [] Reduzi as permissões à autoridade mínima.
  • [] Verifiquei que todas as ações/modelos chamados realmente existem.
  • [ ] Fiz a etapa de implantação controlada com aprovação/proteção.