Tutorial 2026-03-22

Configurar CI/CD para scripts de FiveM con GitHub Actions

TDYSKY

TDYSKY

Fundador y desarrollador principal de Agency Scripts

¿Por qué CI/CD para desarrollo en FiveM?

La integración y el despliegue continuos pueden parecer excesivos para scripts de FiveM, pero a medida que tus proyectos ganan complejidad y tu equipo crece, los flujos automatizados se vuelven muy valiosos. El CI/CD caza errores de sintaxis antes de que lleguen a tu servidor, impone estándares de calidad de código entre colaboradores, automatiza el aumento de versión y la generación de changelogs y empaqueta releases de forma consistente. GitHub Actions ofrece CI/CD gratuito para repos públicos y minutos generosos en el tier gratuito para los privados, lo que lo convierte en la plataforma ideal para desarrolladores de FiveM.

Configurar el linting de Lua

Arranca tu pipeline de CI con linting automático usando Luacheck, la herramienta estándar de análisis estático para Lua. Crea un archivo .github/workflows/lint.yml que se ejecute en cada push y pull request. El workflow debería instalar Luacheck vía LuaRocks y ejecutarlo sobre tus archivos Lua con un .luacheckrc personalizado que defina las globales de FiveM como Citizen, TriggerServerEvent y otras funciones específicas del framework. Esto atrapa referencias a variables no definidas, locales sin uso e inconsistencias de estilo antes de que el código llegue a producción.

Verificación de build de TypeScript

Si tu proyecto de FiveM usa TypeScript, añade un paso de build que compile los fuentes de TS y verifique que no hay errores de tipo. Instala las dependencias del proyecto con npm y ejecuta el compilador de TypeScript en modo check. Así aseguras que cada pull request produce un JavaScript válido y detectas desajustes de tipos que podrían provocar errores en tiempo de ejecución. Incluye este paso antes del linting para validar el Lua o JavaScript generado junto con el fuente TypeScript, dándote cobertura completa sobre posibles problemas.

Gestión automática de versiones

Usa GitHub Actions para automatizar tu workflow de releases. Cuando empujes una tag que encaje con un patrón de versión tipo v*.*.*, dispara un workflow que extraiga el número de versión, lo actualice en tu fxmanifest.lua, genere un changelog a partir de los mensajes de commit desde la última tag, construya los assets compilados y cree un GitHub Release con el recurso empaquetado como artefacto descargable. Esto elimina la preparación manual de releases y garantiza que cada publicación sea coherente y completa.

Estrategias de testing automatizado

Aunque FiveM no tiene un framework de testing integrado, puedes probar funciones de utilidad compartidas y lógica de negocio con herramientas de testing estándar para Lua como Busted. Mockea las globales y natives específicas de FiveM en tu entorno de test y ejecuta tests unitarios contra tus funciones puras. Para testing de integración, plantéate montar un servidor FiveM headless en un contenedor Docker que cargue tu recurso y ejecute escenarios automatizados con un cliente de test. Estos tests cazan regresiones pronto y dan confianza en la calidad de tus releases.

Automatización del despliegue

Para equipos que gestionan servidores en producción, amplía tu pipeline para manejar el despliegue. Tras un build y test exitosos, usa acciones de SSH o FTP para desplegar el recurso actualizado en tu servidor de staging. Ejecuta un smoke test que verifique que el recurso arranca sin errores y promueve a producción con una puerta de aprobación manual. Guarda las credenciales del servidor como GitHub Secrets y restringe los workflows de despliegue a las ramas protegidas. Este flujo asegura que solo código testeado y revisado llegue a tu servidor en vivo y reduce el riesgo de desplegar actualizaciones rotas que afecten a tu comunidad.

Compartir este artículo

¿Listo para mejorar tu servidor?

Echa un vistazo a nuestros scripts premium de FiveM en la tienda de Agency Scripts o únete a nuestra comunidad de Discord para soporte y novedades.