Runtimes

A Zenifra não faz detecção automática de runtime. Em projetos com origem em Repositório GitHub, o usuário escolhe explicitamente o runtime no momento da criação do projeto.

Runtimes suportados

RuntimeComo funciona
Node.jsO usuário escolhe a versão no console e a plataforma instala dependências com npm ci e NODE_ENV=production
PythonO usuário escolhe a versão no console e a plataforma instala dependências com pip install --no-cache-dir -r requirements.txt

Nota: Hoje, os runtimes oficialmente suportados para builds por Repositório GitHub são apenas Node.js e Python. Java, Go, PHP, .NET, Nginx, Apache e outros stacks devem ser publicados via Imagem OCI.

Regra importante

O runtime é definido na criação do projeto GitHub e não pode ser alterado depois.

Node.js

Arquivos obrigatórios

{
  "name": "my-app",
  "scripts": {
    "start": "node index.js"
  }
}

Para projetos Node.js baseados em GitHub, estes arquivos são obrigatórios:

  • package.json
  • package-lock.json

Instalação padrão de dependências

A Zenifra instala as dependências com:

NODE_ENV=production npm ci

Comandos do projeto

Depois da instalação padrão, os comandos abaixo são definidos pelo usuário na criação do projeto:

  • pre-build (opcional)
  • build
  • start

Um uso comum de pre-build em Node.js é executar migrations ou outras etapas preparatórias antes do build ou do start.

Python

Arquivo obrigatório

Para projetos Python baseados em GitHub, o arquivo requirements.txt é obrigatório.

Instalação padrão de dependências

pip install --no-cache-dir -r requirements.txt

Comandos do projeto

Assim como em Node.js, estes comandos são definidos pelo usuário na criação do projeto:

  • pre-build (opcional)
  • build
  • start

O que editar depois

Depois que o projeto GitHub é criado, apenas estes comandos ficam disponíveis para edição no fluxo documentado:

  • pre-build
  • build
  • start

Campos como runtime, versão, branch e auto-deploy devem ser tratados como definidos na criação.