Déclencher un flux de travail
Personne ne doit être autorisé à envoyer des modifications directement à la branche principale dans votre référentiel de code. Dans l’idéal, si un développement est nécessaire, vous devez apporter des modifications à une copie du code dans une branche.
Une approche courante consiste à utiliser des branches de fonctionnalités, où une branche est utilisée pour travailler sur une fonctionnalité. Par exemple, l’équipe de science des données peut avoir besoin d’améliorer les performances du modèle et d’essayer de le faire en effectuant des expériences avec des valeurs d’hyperparamètre. L’équipe peut créer une branche, mettre à jour la valeur d’hyperparamètre dans le script d’entraînement. Une fois l’expérience effectuée, un scientifique des données peut créer une demande de tirage pour fusionner la branche avec le référentiel principal.
L’utilisation des branches et des demandes de tirage vous permet de vérifier les modifications apportées à votre code avant de les fusionner avec la branche principale. Les demandes de tirage peuvent également être utilisées comme déclencheur pour GitHub Actions afin d’automatiser les tâches qui doivent suivre une mise à jour proposée au code, comme les vérifications automatiques de la qualité du code.
Pour utiliser le développement basé sur des fonctionnalités avec l’automatisation, voici ce que vous devez faire :
- Créez une règle de protection de branche pour bloquer les envois (push) directs vers la branche principale.
- Créez une branche pour mettre à jour le code.
- Déclenchez un workflow GitHub Actions lors de l’ouverture d’une demande de tirage.
Créer une règle de protection de branche
Pour protéger votre code, il est recommandé de bloquer les envois (push) directs vers la branche principale. Le blocage des envois (push) directs signifie que personne n’est autorisé à envoyer directement des modifications de code à la branche principale. Au lieu de cela, les modifications apportées à la branche principale peuvent être apportées en fusionnant les demandes de tirage.
Pour protéger la branche principale, activez une règle de protection de branche dans GitHub :
- Accédez à l’onglet Paramètres dans votre dépôt.
- Sous l’onglet Paramètres, sous Code et automatisation, sélectionnez Branches.
- Sélectionnez Ajouter une règle.
- Entrez
main
sous Modèle de nom de branche. - Activez Exiger une demande de tirage avant de fusionner et Exiger des approbations.
- Enregistrez vos modifications.
Créez une branche pour mettre à jour le code.
Chaque fois que vous souhaitez modifier le code, vous devez créer une branche et travailler au sein de cette dernière. Une fois que vous souhaitez apporter vos modifications finales, vous pouvez créer une demande de tirage pour fusionner la branche de fonctionnalité avec la branche principale.
Conseil
En savoir plus sur le contrôle de code source pour les projets Machine Learning et l’utilisation du développement basé sur des fonctionnalités.
Déclencher un workflow GitHub Actions
Enfin, vous pouvez utiliser la création de requêtes de tirage comme déclencheur pour un workflow GitHub Actions. Par exemple, chaque fois que quelqu’un apporte des modifications au code, vous pouvez exécuter des vérifications de qualité du code.
C’est seulement lorsque le code modifié a réussi les vérifications de qualité et que quelqu’un a vérifié les modifications proposées que vous voulez réellement fusionner la demande de tirage.
Pour déclencher un workflow GitHub Actions, vous pouvez utiliser on: [pull_request]
. Lorsque vous utilisez ce déclencheur, votre workflow s’exécute chaque fois que la demande de tirage est créée.
Si vous souhaitez qu’un workflow s’exécute chaque fois qu’une demande de tirage est fusionnée, vous devez utiliser un autre déclencheur. La fusion d’une demande de tirage est essentiellement une transmission push vers la branche principale. Par conséquent, pour déclencher un workflow à exécuter lorsqu’une demande de tirage est fusionnée, utilisez le déclencheur suivant dans le workflow GitHub Actions :
on:
push:
branches:
- main