feat: commit inicial da aplicacao com pipeline

This commit is contained in:
2026-06-29 23:04:57 -03:00
parent 87fd60e82f
commit e9bb8d83b0
7 changed files with 310 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
// ============================================================
// Aplicação de demonstração CI/CD
// Cada vez que você alterar este arquivo e fizer "git push",
// o Jenkins vai automaticamente testar, construir e implantar.
// ============================================================
// Rota principal — retorna informações da aplicação
app.get('/', (req, res) => {
res.json({
app: 'CI/CD Demo',
versao: '1.0.0',
status: 'rodando',
ambiente: process.env.NODE_ENV || 'development',
timestamp: new Date().toISOString(),
mensagem: 'Pipeline CI/CD funcionando! 🚀'
});
});
// Health check — usado para verificar se a aplicação está saudável
// Em produção, load balancers e orquestradores usam este endpoint
app.get('/health', (req, res) => {
res.status(200).json({ status: 'healthy' });
});
// Rota de informações do sistema
app.get('/info', (req, res) => {
res.json({
node_version: process.version,
platform: process.platform,
uptime_seconds: Math.floor(process.uptime()),
memory_mb: Math.round(process.memoryUsage().rss / 1024 / 1024)
});
});
// Inicia o servidor apenas se NÃO estiver em modo de teste.
// Nos testes, o supertest cria seu próprio servidor temporário.
if (process.env.NODE_ENV !== 'test') {
app.listen(PORT, '0.0.0.0', () => {
console.log(`✅ Servidor rodando em http://0.0.0.0:${PORT}`);
});
}
module.exports = app;