Pipeline CI/CD para TypeScript: configuração do zero com PythonLib

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Pipeline CI/CD para TypeScript: configuração do zero — guia passo a passo

\n\n

Você escreveu um projeto incrível em TypeScript. Código bonito, tipos rigorosos, lógica bem pensada. Mas toda vez que precisa atualizar o servidor, você manualmente executa o build, verifica se algo quebrou e reza para a produção não cair. Familiar?

\n\n

Está na hora de mudar isso. O pipeline CI/CD não é mágica para seniors com vinte anos de experiência. É uma ferramenta que automatiza a rotina: linting, testes, build e deploy. Um commit na branch e tudo vai para produção sozinho, sem estresse.

\n\n

Neste artigo, vamos configurar do zero um pipeline CI/CD completo para um projeto TypeScript. Usando como exemplo o GitHub Actions — uma ferramenta gratuita e poderosa. Você aprenderá a:

\n
    \n
  • Adicionar linting e formatação automáticos
  • \n
  • Executar testes unitários e verificar tipos
  • \n
  • Compilar a aplicação e fazer deploy em um servidor remoto
  • \n
  • Evitar erros comuns na configuração de CI/CD
  • \n
\n\n

Pronto? Vamos nessa!

\n\n

Por que CI/CD é criticamente importante para projetos TypeScript

\n\n

TypeScript é uma linguagem com tipagem estática que compila para JavaScript. À primeira vista, isso dá uma falsa sensação de segurança: se o código compilou, significa que está funcionando. Mas, na prática, a compilação não detecta erros lógicos, problemas com API ou dependências quebradas.

\n\n

CI/CD (Integração Contínua / Deploy Contínuo) resolve esse problema:

\n
    \n
  • Verificação automática: cada commit passa pelo pipeline — linting, testes, compilação. Se algo quebrar, você fica sabendo em um minuto, não em uma semana.
  • \n
  • Padrão unificado: toda a equipe segue as mesmas regras. Ninguém esquece de rodar os testes antes do push.
  • \n
  • Deploy rápido: chega de comandos manuais no servidor. Um merge na main e a atualização já está no site de produção.
  • \n
\n\n

Para TypeScript, CI/CD é especialmente importante porque erros de tipo podem aparecer apenas em tempo de execução se a compilação não for configurada corretamente. O pipeline previne isso.

\n\n

Passo 1: Preparação do projeto TypeScript

\n\n

Antes de configurar o CI/CD, certifique-se de que o projeto está pronto para automação. Aqui está o conjunto mínimo:

\n
    \n
  • package.json com scripts definidos
  • \n
  • tsconfig.json — configuração do TypeScript
  • \n
  • ESLint e Prettier — para padronização do código
  • \n
  • Testes (Jest, Vitest ou Mocha)
  • \n
\n\n

Suponha que você tenha um projeto simples. A estrutura pode ser assim:

\n\n
my-ts-project/\n├── src/\n│   ├── index.ts\n│   └── utils.ts\n├── tests/\n│   └── utils.test.ts\n├── .eslintrc.json\n├── .prettierrc\n├── tsconfig.json\n├── package.json\n└── README.md\n
\n\n

Certifique-se de que os scripts estão definidos no package.json:

\n\n
{\n  "scripts": {\n    "lint": "eslint src/ tests/ --ext .ts",\n    "format": "prettier --check src/ tests/",\n    "type-check": "tsc --noEmit",\n    "test": "jest",\n    "build": "tsc",\n    "start": "node dist/index.js"\n  }\n}\n
\n\n

Agora o projeto está pronto para CI/CD. Se faltar algo, adicione. O pipeline chamará exatamente esses comandos.

\n\n

Passo 2: Escolha da plataforma CI/CD

\n\n

Existem muitas opções: Jenkins, GitLab CI, CircleCI, Travis CI. Mas para iniciantes e projetos pequenos, o GitHub Actions é a melhor escolha:

\n
    \n
  • Integrado ao GitHub — não precisa configurar nada separadamente
  • \n
  • Limite gratuito: 2000 minutos por mês (para repositórios privados)
  • \n
  • Ecossistema enorme de actions prontas
  • \n
  • Sintaxe YAML clara
  • \n
\n\n

Se o seu código está no GitLab — use GitLab CI (a descrição é quase a mesma). Mas neste artigo, trabalharemos com GitHub.

\n\n

Passo 3: Criação do pipeline CI/CD — primeiro arquivo

\n\n

Na raiz do projeto, crie a pasta .github/workflows/ e, dentro dela, o arquivo ci.y

Blogs

Book Recommendations