Configure este fluxo de trabalho para implantar automaticamente seu aplicativo para produção e agilizar seu processo de lançamento.
Netlify é uma plataforma de hospedagem na web e um conjunto abrangente de ferramentas para implantação e gerenciamento de aplicativos da web na nuvem.
Mas seus recursos vão muito além disso - suas funções sem servidor permitem que você execute código do lado do servidor sem um servidor dedicado.
Explore como configurar um pipeline de CI/CD para implantar uma API REST Node.js no Netlify usando GitHub Actions.
Pipelines de CI/CD com ações do GitHub: uma visão geral
Os pipelines de Integração Contínua e Entrega Contínua (CI/CD) são uma série de processos sequenciais e automatizados pelos quais os aplicativos de software passam antes de serem enviados para produção.
Normalmente, os pipelines de CI/CD consistem em várias fases principais, incluindo as fases de origem, construção, teste e implantação.
Embora seja possível realizar essas fases manualmente, automatizá-las oferece várias vantagens, incluindo:
- Minimizando o risco de erros humanos.
- Agilizando o processo de liberação.
- Garantir um fluxo de trabalho consistente para enviar software de qualidade para produção.
O que são ações do GitHub?
O GitHub Actions é uma ferramenta integrada ao GitHub que fornece uma ampla variedade de ações pré-construídas que você pode usar para definir fluxos de trabalho como código diretamente no repositório do projeto para automatizar o CI/CD oleodutos.
Você também pode criar ações personalizadas para atender às necessidades específicas do seu projeto, permitindo criar e implantar aplicativos para produção sem complicações. Uma das vantagens do GitHub Actions é sua integração perfeita com outros recursos do GitHub, como solicitações pull e rastreamento de problemas.
Isso possibilita acionar fluxos de trabalho com base em eventos específicos, como uma nova confirmação, garantindo que seus pipelines de CI/CD sejam acionados automaticamente quando necessário.
Configurar o projeto Node.js
Para começar, você precisa criar um servidor web expresso. Para fazer isso, crie uma nova pasta localmente e altere o diretório em seu terminal.
mkdir express-netlify
cd express-netlify
A seguir, crie um pacote.json arquivo usando npm, o gerenciador de pacotes de nós.
npm init -y
Por fim, instale as dependências necessárias no projeto.
npm install express netlify-lambda serverless-http
O netlify-lambda O pacote serve como um servidor de desenvolvimento local que facilita o teste de funções sem servidor. serverless-http ajuda na adaptação de aplicativos Express.js para um formato compatível com manipuladores de funções sem servidor.
O Netlify não fornece suporte nativo para hospedagem e execução de aplicativos de back-end completos. Em vez disso, oferece funções sem servidor como uma solução alternativa para lidar com a funcionalidade de back-end.
Essas funções gerenciam a lógica do lado do servidor, lidam com solicitações de API HTTP e fornecem conteúdo dinâmico, fornecendo funcionalidade de back-end dentro do paradigma sem servidor.
Você pode encontrar o código deste projeto em seu Repositório GitHub.
Criar o Express Web Server
Crie três pastas: dist., funções, e origem no diretório raiz da pasta do seu projeto.
Antes de configurar o servidor Express, crie um espaço em branco index.html arquivo no dist. pasta. Este arquivo atua como um espaço reservado que permite ao Netlify implantar com sucesso o aplicativo Express e atender às rotas da API.
Agora, crie um src/app.js arquivo e adicione o seguinte código:
const expresso = exigir("expressar");
const sem servidor = exigir("sem servidor-http");const aplicativo = expresso();
const roteador = expresso. Roteador();router.get("/", (req, res) => {
res.enviar("Olá Mundo!")
});app.use(`/.netlify/functions/app`, roteador);
módulo.exports = aplicativo;
módulo.exports.handler = sem servidor (aplicativo);
Esse código define um servidor Express com uma única rota para a URL raiz que manipula solicitações GET. O app.use A função registra o middleware da rota com o aplicativo Express, garantindo que qualquer requisição HTTP feita ao caminho
Conseqüentemente, se você adicionar um novo endpoint, como /api/auth, estará acessível em
Isso permite o teste local do servidor e garante que você possa implantá-lo como uma função sem servidor no Netlify.
Definir o arquivo Netlify.toml
No diretório raiz, crie um novo Netlify.toml arquivo e adicione o código a seguir.
[construir]
base = "/"
command = "npm run build"
publicar = "/dist/"
funções = "funções/"
[construir.ambiente]
NODE_VERSION = "16"
[funções]
external_node_modules = ["expressar"]
node_bundler = "esbuild"
[[redireciona]]
força = verdadeiro
de = "/api/*"
estado = 200
to = "/.netlify/functions/app/:splat"
[[redireciona]]
de = "/*"
estado = 200
para = "/index.html"
O código especifica as definições de configuração de compilação e implantação para o aplicativo Express no Netlify. Ele inclui configurações como diretório base, comando de compilação, diretório de publicação e diretório de funções.
Além disso, define configurações de redirecionamento que devem gerenciar o roteamento de solicitações de API HTTP, garantindo que sejam direcionados adequadamente para as funções sem servidor do Netlify.
Atualize o arquivo Package.json
Abra o pacote.json arquivo e adicione esses comandos ao objeto de scripts.
"scripts": {
"começar": "netlify-lambda serve src",
"construir": "netlify-lambda build src"
},
Execute os seguintes comandos para criar e iniciar o aplicativo localmente.
npm run build
npm executar início
O servidor iniciará na porta 9000. Você pode ir em frente e testar a API usando o Postman fazendo solicitações para http://localhost: 9000/.netlify/functions/app
Por fim, antes de configurar o fluxo de trabalho do GitHub Actions para automatizar implantações no Netlify, criar um repositório no GitHube envie os arquivos do projeto.
Implante o Express Application no Netlify
Primeiro, implante a API no Netlify antes de configurar o fluxo de trabalho do GitHub Actions. Siga estas etapas para implantar o aplicativo Express no Netlify.
- Dirija-se a Netlify e crie uma conta e entre no Visão geral página.
- Selecione e clique no Sites aba.
- Clique no Importar do Git botão e selecione GitHub como a plataforma do provedor Git. O Netlify solicitará que você se autentique no GitHub para conceder acesso à sua conta e aos repositórios do projeto.
- Selecione o repositório do projeto Express na lista de repositórios exibidos.
- Depois de selecionar o repositório, você precisa definir as configurações de compilação para o processo de implantação. O Netlify simplifica esse processo ao detectar automaticamente a tecnologia usada para criar o aplicativo e preencher previamente os campos com as configurações de construção necessárias. Nesse caso, o comando build, a publicação e o diretório de funções.
- Por último, clique no Implantar site botão para concluir o processo.
Criar um fluxo de trabalho de ações do GitHub
Clique no Ações tab no repositório GitHub do seu projeto. No Integração contínua seção, selecione e clique em Configurar o Node.js fluxo de trabalho.
No editor do GitHub, renomeie o nome do arquivo para Netlify.yml, exclua o código padrão do fluxo de trabalho Node.js e adicione o código abaixo:
nome:ConstruireImplantarparaNetlify
sobre:
empurrar:
pull_request:
empregos:
construir:
corre em:ubuntu-22.04
passos:
-usa:ações/checkout@v3# (Compile para ./dist ou outro diretório... )
-nome:ImplantarparaNetlify
usa:nwtgck/[email protected]
com:
publicar-dir:'./dist'
ramo de produção:principal
github-token:${{segredos. GITHUB_TOKEN}}
mensagem de implantação:"Implantar a partir de ações do GitHub"
enable-pull-request-comentário:falso
enable-commit-comment:verdadeiro
overwrites-pull-request-comentário:verdadeiro
ambiente:
NETLIFY_AUTH_TOKEN:${{segredos. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{segredos. NETLIFY_SITE_ID}}
minutos-limite:1
Aqui está um detalhamento das propriedades do fluxo de trabalho:
- sobre: eventos que acionam as ações neste fluxo de trabalho.
- empregos: Especifica o evento que uma Ação específica deve executar, que são: os eventos de construção e implantação.
- corre em: o ambiente de produção do host para a ação.
- passos: especifica uma série de etapas envolvidas para executar um determinado trabalho.
- com: define os argumentos necessários para que as ações sejam executadas corretamente.
- ambiente: especifica as variáveis de ambiente necessárias para o fluxo de trabalho.
Finalmente, confirme as atualizações feitas neste arquivo. O GitHub deve acionar automaticamente o fluxo de trabalho.
A compilação inicial, no entanto, acionará um erro, pois você precisa adicionar variáveis secretas exigidas pelo fluxo de trabalho: o ID do site implantado e o token de autenticação do Netlify. Dirija-se ao seu Configurações do site no Netlify e copie o ID do site.
Para obter o token de autenticação, clique no botão perfil de usuário ícone e selecione o Configurações do Usuário opção na janela suspensa. Na página de configurações, selecione Formulários, e clique Novo token de acesso para gerar seu token de autenticação.
Adicione as duas variáveis de ambiente como NETLIFY_SITE_ID e NETLIFY_AUTH_TOKEN às seções de variáveis de ambiente e segredos do repositório em seu repositório GitHub. Depois de fazer essas alterações, execute novamente o fluxo de trabalho. O Netlify implantará automaticamente todas as alterações subsequentes que você enviar usando esse pipeline.
Vá em frente e teste a API usando o Postman fazendo solicitações para esta URL:
Configurando pipelines de CI/CD com GitHub Actions e Netlify
Ao utilizar as funções sem servidor do Netlify, você pode implantar aplicativos da Web completos que abrangem a funcionalidade do lado do cliente e do back-end no Netlify.
Além disso, a configuração de pipelines de CI/CD para aplicativos com o GitHub Actions oferece uma abordagem simplificada para automatizar o processo de criação e implantação. Isso permite que você defina fluxos de trabalho que garantem um processo de desenvolvimento contínuo e confiável, desde a concepção até o estágio de lançamento.