Tutoriel 2026-03-22

CI/CD FiveM avec GitHub Actions

TDYSKY

TDYSKY

Fondateur et développeur principal chez Agency Scripts

Pourquoi CI/CD pour le développement FiveM ?

L'intégration continue et le déploiement continu peuvent sembler excessifs pour les scripts FiveM, mais à mesure que tes projets deviennent de plus en plus complexes et que ton équipe s'agrandit, les flux de travail automatisés deviennent inestimables. CI/CD détecte les erreurs de syntaxe avant qu'elles n'atteignent ton serveur, applique les normes de qualité du code à tous les contributeurs, automatise le changement de version et la génération du journal des modifications, et emballe les versions de manière cohérente. GitHub Actions fournit des CI/CD gratuits pour les référentiels publics et de généreuses minutes gratuites pour les référentiels privés, ce qui en fait la plate-forme idéale pour les développeurs FiveM.

Configuration du peluchage Lua

Démarrez ton pipeline CI avec le peluchage automatisé à l'aide de Luacheck, l'outil d'analyse statique standard Lua. Créer un .github/workflows/lint.yml fichier qui s’exécute à chaque demande push et pull. Le flux de travail doit installer Luacheck via LuaRocks, puis l'exécuter sur tes fichiers Lua avec un fichier personnalisé .luacheckrc configuration qui définit les globaux FiveM comme Citizen, TriggerServerEvent, et d'autres fonctions spécifiques au framework. Cela détecte les références de variables non définies, les éléments locaux inutilisés et les incohérences de style avant que le code n'atteigne la production.

Vérification de la construction TypeScript

Si ton projet FiveM utilise TypeScript, ajoutez une étape de génération qui compile tes sources TypeScript et vérifie qu'il n'y a pas d'erreurs de type. Installez les dépendances de ton projet avec npm, puis exécutez le compilateur TypeScript en mode vérification. Cela garantit que chaque demande d'extraction produit une sortie JavaScript valide et détecte les incompatibilités de type qui pourraient provoquer des erreurs d'exécution. Incluez cette étape avant le peluchage afin de valider la sortie Lua ou JavaScript générée aux côtés de la source TypeScript, tu offrant ainsi une couverture complète des problèmes potentiels.

Gestion automatisée des versions

Utilisez les actions GitHub pour automatiser ton flux de travail de publication. Lorsque tu pousses une balise correspondant à un modèle de version comme v*.*.*, déclenchez un workflow qui extrait le numéro de version, le met à jour dans ton fxmanifest.lua, génère un journal des modifications à partir des messages de validation depuis la dernière balise, crée toutes les ressources compilées et crée une version GitHub avec la ressource packagée en tant qu'artefact téléchargeable. Cela élimine la préparation manuelle des versions et garantit que chaque version est cohérente et complète.

Stratégies de tests automatisés

Bien que FiveM ne dispose pas d'un cadre de test intégré, tu peux tester les fonctions utilitaires partagées et la logique métier à l'aide des outils de test standard Lua tels que Busted. Moquez les fonctions globales et natives spécifiques au FiveM dans ton environnement de test, puis exécutez des tests unitaires sur tes fonctions logiques pures. Pour les tests d'intégration, envisagez de configurer un serveur FiveM sans tête dans un conteneur Docker qui charge ton ressource et exécute des scénarios automatisés à l'aide d'un client de test. Ces tests détectent les régressions plus tôt et renforcent la confiance dans la qualité de ton version.

Automatisation du déploiement

Pour les équipes qui gèrent des serveurs en direct, étendez ton pipeline CI/CD pour gérer le déploiement. Après une génération et un test réussis, utilisez les actions SSH ou FTP pour déployer la ressource mise à jour sur ton serveur intermédiaire. Exécutez un test de fumée qui vérifie que la ressource démarre sans erreurs, puis passez en production avec une porte d'approbation manuelle. Stockez les informations d’identification du serveur en tant que secrets GitHub et limitez les flux de déploiement aux branches protégées. Ce flux de travail garantit que seul le code testé et révisé atteint ton serveur en direct et réduit le risque de déploiement de mises à jour interrompues qui perturbent ta communauté.

Partager cet article

Prêt à améliorer votre serveur ?

Découvrez nos scripts FiveM premium dans la boutique Agency Scripts ou rejoignez notre communauté Discord pour le support et les mises à jour.