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}`); }); } app.get("/teste", (req, res) => res.json({ msg: "Branch funcionando!" })); module.exports = app;