Attivare un flusso di lavoro
Nessuno dovrebbe essere autorizzato a eseguire il push delle modifiche direttamente nel ramo principale nel repository del codice. Idealmente, se sono necessari interventi di sviluppo, è consigliabile apportare le modifiche in una copia del codice in un ramo.
Un approccio comune prevede l'uso dei rami di funzionalità, in cui un ramo viene usato per lavorare su una funzionalità. Ad esempio, il team di data science potrebbe dover migliorare le prestazioni del modello e proverà a farlo sperimentando i valori degli iperparametri. Il team può creare un ramo e aggiornare il valore degli iperparametri nello script di training. Al termine degli esperimenti, uno scienziato dei dati può creare una richiesta pull per eseguire il merge del ramo con il repository principale.
L'uso di rami e richieste pull consente di verificare le modifiche apportate al codice prima di eseguirne il merge con il ramo principale. Le richieste pull possono essere usate anche come trigger per GitHub Actions per automatizzare le attività che devono seguire un aggiornamento proposto al codice, ad esempio controlli automatici della qualità del codice.
Per usare lo sviluppo basato su funzionalità insieme all'automazione, è necessario:
- Creare una regola di protezione dei rami per bloccare i push diretti al ramo principale.
- Creare un ramo per aggiornare il codice.
- Attivare un flusso di lavoro di GitHub Actions all'apertura di una richiesta pull.
Creare una regola di protezione dei rami
Per proteggere il codice, è opportuno bloccare eventuali push diretti al ramo principale. Il blocco dei push diretti significa che nessuno potrà eseguire direttamente il push di modifiche al codice nel ramo principale. Le modifiche al ramo principale possono essere invece effettuate eseguendo il merge delle richieste pull.
Per proteggere il ramo principale, abilitare una regola di protezione dei rami in GitHub:
- Passare alla scheda Settings nel repository.
- Nella scheda Settings in Code and automation selezionare Branches.
- Selezionare Aggiungi regola.
- Immettere
mainin Branch name pattern. - Abilitare Require a pull request before merging e Require approvals.
- Salva le modifiche.
Creare un ramo per aggiornare il codice.
Ogni volta che si vuole modificare il codice, sarà necessario creare un ramo e lavorare in tale ramo. Quando si è pronti per finalizzare le modifiche, è possibile creare una richiesta pull per eseguire il merge del ramo di funzionalità con il ramo principale.
Suggerimento
Vedere altre informazioni sul controllo del codice sorgente per i progetti di Machine Learning e sull'uso dello sviluppo basato su trunk.
Attivare un flusso di lavoro di GitHub Actions
Infine, è possibile usare la creazione di richieste pull come trigger per i flussi di lavoro di GitHub Actions. Si supponga, ad esempio, che sia necessario eseguire alcuni controlli di qualità del codice ogni volta che qualcuno apporta modifiche.
Solo quando il codice modificato supera i controlli di qualità e qualcuno ha verificato le modifiche proposte, si vuole eseguire effettivamente il merge della richiesta pull.
Per attivare un flusso di lavoro di GitHub Actions, è possibile usare on: [pull_request]. Quando si usa questo trigger, il flusso di lavoro verrà eseguito ogni volta che viene creata la richiesta pull.
Se si vuole eseguire un flusso di lavoro ogni volta che viene eseguito il merge di una richiesta pull, sarà necessario usare un altro trigger. Il merge di una richiesta pull è essenzialmente un push nel ramo principale. Per attivare l'esecuzione di un flusso di lavoro quando viene eseguito il merge di una richiesta pull, usare quindi il trigger seguente nel flusso di lavoro di GitHub Actions:
on:
push:
branches:
- main