Esercitazione: Automatizzare la distribuzione della soluzione usando GitHub Actions per Microsoft Power Platform

In questa esercitazione apprenderai a:

  • Creare un nuovo repository GitHub
  • Creare due workflow GitHub usando GitHub Actions per Microsoft Power Platform

I flussi di lavoro possono esportare automaticamente l'app (come soluzione non gestita) da un ambiente di sviluppo, generare un artefatto di compilazione (soluzione gestita) e distribuire l'app nell'ambiente di produzione. Questa esercitazione utilizza la soluzione ALMLab creata e gli ambienti impostati nelle esercitazioni precedenti.

Esercitazioni correlate: Attività iniziali e Creare un'app basata su modello.

Creare un account GitHub

  1. Passare a https://github.com e selezionare Iscriviti o Avvia una versione di valutazione gratuita (o accedi se hai un account esistente).

    Crea un account

  2. Dopo aver creato l'account, creare un repository selezionando Crea repository o Nuovo.

    Creare un repository

    Potresti vedere la seguente schermata di destinazione alternativa:

    Creare un nuovo repository

  3. Crea il nuovo repository e assegnagli il nome poweractionslab. Assicurarsi di selezionare Aggiungi un file README per avviare il repository e scegliere Crea repository.

    Avviare il repo.

Creazione di un nuovo segreto per l'autenticazione del Service Principal

  1. Passare al repository e selezionare Impostazioni. Espandere Segreti e quindi selezionare Azioni.

  2. Nella pagina Segreti, assegna al segreto il nome PowerPlatformSPN. Immettere il segreto client dalla registrazione dell'applicazione creata in Microsoft Entra nel campo Valore e quindi selezionare Aggiungi segreto. Si farà riferimento al segreto client nei file YML che definiscono i flussi di lavoro GitHub più avanti in questa esercitazione.

    Creare il segreto del service principal

    Il segreto del client è ora archiviato in modo sicuro come segreto GitHub.

Creare un flusso di lavoro per esportare e decomprimere il file della soluzione in un nuovo branch

  1. Selezionare Azioni e quindi configurare autonomamente un flusso di lavoro. In alternativa, selezionare Configura nella casella Flusso di lavoro semplice nella sezione suggerita per questo repository.

    Configurare un flusso di lavoro.

  2. Viene visualizzato un nuovo file YAML con un flusso di lavoro di base che consente di iniziare a usare le azioni GitHub.

    File YML di esempio

  3. Eliminare il contenuto creato in modo preliminare e quindi incollare il contenuto dal file export-and-branch-solution-with-spn-auth.yml . Rinominare il file in export-and-branch-solution.yml.

    Rinominare e sostituire il contenuto.

  4. Aggiorna <ENVIRONMENTURL> con l'URL dell'ambiente di sviluppo da cui desideri eseguire l'esportazione (ad esempio, https://poweractionsdev.crm.dynamics.com).

  5. Aggiorna <APPID> e <TENANT ID> con i tuoi valori.

    • Se si usano le credenziali, incollare il file export-and-branch-solution.yml anziché il contenuto del file export-and-branch-solution-with-spn-auth.yml. Aggiornare <USERNAME> con il nome utente usato per connettersi all'ambiente.

      Rinominare e sostituire il contenuto

    Suggerimento

    Se non si ha familiarità con GitHub Actions e si vuole ottenere altre informazioni, vedere la documentazione ufficiale all'indirizzo https://docs.github.com/en/actions.

  6. È ora possibile eseguire il commit delle modifiche. Seleziona Avvia commit, digita Crea export yml nel campo del titolo, quindi aggiungi una descrizione (facoltativa). Quindi seleziona Esegui commit del nuovo file.

    Avvia commit.

È stato creato il primo flusso di lavoro GitHub usando le azioni seguenti:

  • Chi sono io: assicura che sia possibile connettersi correttamente all'ambiente da cui si vuole esportare.
  • Esporta soluzione: esporta il file della soluzione dal tuo ambiente di sviluppo.
  • Decompressione della soluzione: il file di soluzione esportato dal server è un file compresso (zip) con file di configurazione consolidati. Questi file iniziali non sono adatti per la gestione del codice sorgente perché non sono strutturati per consentire ai sistemi di gestione del codice sorgente di eseguire correttamente il confronto dei file e rilevare le modifiche che si desidera sottoporre a commit nel controllo del codice sorgente. È necessario decomprimere i file della soluzione per renderli adatti per l'archiviazione e l'elaborazione nella gestione del codice sorgente.
  • Branch Solution: crea un nuovo ramo in cui archiviare la soluzione esportata.

Testa il flusso di lavoro di esportazione e estrazione

  1. Quindi, verifica che il flusso di lavoro venga eseguito. Passare a Azioni, selezionare Esegui flusso di lavoro e scegliere Esegui flusso di lavoro. Se si usa un nome di soluzione diverso da ALMLab, modificare il valore qui ma mantenere gli altri valori uguali.

    Esegui workflow.

  2. Dopo 5-10 secondi, viene avviato il flusso di lavoro. È possibile selezionare il flusso di lavoro in esecuzione per monitorare lo stato di avanzamento.

    Fare clic per visualizzare il flusso di lavoro.

    Selezionare e visualizzare il flusso di lavoro.

  3. Al termine del flusso di lavoro, verificare che venga creato un nuovo ramo con la soluzione decompressa nella solutions/ALMLab cartella . Passare alla scheda Codice ed espandere l'elenco a discesa branch.

  4. Selezionare il ramo creato dall'azione.

  5. Verificare che la solutions/ALMLab cartella sia stata creata nel nuovo branch. Creare quindi una richiesta pull per unire le modifiche nel ramo principale. Selezionare Contribuisci e nel riquadro a comparsa selezionare Apri richiesta pull.

  6. Nella schermata Apri una richiesta pull aggiungere un titolo e una descrizione, quindi selezionare Crea richiesta pull.

  7. La schermata viene aggiornata per visualizzare la nuova pull request. Quando si crea la pull request, si riceve la conferma che il ramo non presenta conflitti con il ramo principale. Questa conferma significa che è possibile unire automaticamente le modifiche nel ramo principale. Selezionare Unisci richiesta pull e quindi selezionare Conferma unione. Facoltativamente, selezionare Elimina branch per rimuovere il branch ora inattivo.

    Visualizzare i rami

  8. Tornare al ramo predefinito (principale) e verificare che la soluzione sia disponibile lì.

Creare un flusso di lavoro riutilizzabile per generare un artefatto di compilazione e importarlo in produzione

In questa sezione creare un flusso di lavoro aggiuntivo che:

  • Crea un soluzione gestita e la pubblica come artefatto GitHub
  • Importa l'artefatto di compilazione nell'ambiente di produzione
  1. Passare a Azioni e selezionare Nuovo flusso di lavoro.

    Creare un nuovo flusso di lavoro.

  2. Scegli configurare un flusso di lavoro autonomamente.

    Configurare un flusso di lavoro.

  3. Rinominare il titolo del flusso di lavoro in release-solution-to-prod-with-inputs. Copiare il contenuto dal file release-solution-to-prod-with-inputs.yml e incollarlo nella schermata Edit new file.

    Rinomina e incolla il codice.

  4. Esegui il commit delle modifiche. Scegli Inizia commit e quindi aggiungi un titolo e una descrizione (facoltativo). Quindi seleziona Esegui commit del nuovo file.

    Eseguire il commit delle modifiche.

Chiamare il flusso di lavoro riutilizzabile durante l'evento di rilascio

In questa sezione viene chiamato il flusso di lavoro riutilizzabile all'evento release.

  1. Passare a Azioni e selezionare Nuovo flusso di lavoro.

    Creare un nuovo flusso di lavoro.

  2. Scegli di impostare personalmente un flusso di lavoro.

    Configurare un flusso di lavoro.

  3. Rinominare il titolo del flusso di lavoro in release-action-call. Copiare il contenuto dal file release-action-call.yml e incollarlo nella schermata Edit new file.

    Rinominare e incollare il codice.

  4. Aggiorna le seguenti variabili nel nuovo file di flusso di lavoro:

    • Aggiornare <BUILD_ENVIRONMENT> con l'URL per l'ambiente di compilazione usato per generare la soluzione gestita. Ad esempio: https://poweractionsbuild.crm.dynamics.com.
    • Aggiornare <PROD_ENVIRONMENT> con l'URL per l'ambiente di produzione di destinazione della distribuzione. Ad esempio: https://poweractionsprod.crm.dynamics.com.
    • Aggiornare <APP_ID> con l'ID applicazione (client) presente nel pannello Registrazioni app di Microsoft portale di Azure selezionando la registrazione creata in precedenza in questa esercitazione.
    • Aggiornare <TENANT_ID> con l'ID directory (tenant) presente nel pannello Registrazioni app di Microsoft portale di Azure selezionando la registrazione creata in precedenza in questa esercitazione.
  5. Esegui il commit delle modifiche. Scegli Avvia commit e quindi aggiungi un titolo (facoltativo) e una descrizione (facoltativo). Quindi seleziona Esegui commit del nuovo file.

    Eseguire il commit delle modifiche.

Testa il flusso di lavoro di rilascio in produzione

È ora possibile testare l'ultimo flusso di lavoro. Questo flusso di lavoro viene attivato quando viene distribuita una nuova versione nell'ambiente di produzione.

  1. Vai a Release.

    Passare a Versioni.

  2. Seleziona Crea una nuova release.

  3. Aggiungi un tag di versione, un titolo e scegli Pubblica versione.

  4. Seleziona Azioni per visualizzare il flusso di lavoro in esecuzione.

    Selezionare per visualizzare il flusso di lavoro.

  5. Scegli il flusso di lavoro in esecuzione per visualizzare le azioni mentre vengono eseguite.

    Visualizza flusso di lavoro.

  6. Attendi il completamento di ogni azione.

    Visualizzare il ramo.

  7. Al termine del flusso di lavoro, accedere all'ambiente di produzione e verificare che la soluzione venga distribuita come soluzione gestita.

Distribuisci l'aggiornamento ed esamina le modifiche prima del rilascio in produzione

Testa il processo end-to-end e quindi vedi come visualizzare e convalidare le modifiche apportate a un'app prima di distribuirla nell'ambiente di produzione.

  1. Passare alla soluzione ALMLab nell'ambiente di sviluppo e selezionare Modifica o selezionare il nome visualizzato della soluzione.

    Modifica la soluzione

  2. Seleziona e visualizza la tabella Richiesta di indisponibilità.

    Visualizzare la tabella.

  3. Selezionare + Aggiungi colonna e creare la nuova colonna come illustrato nella figura seguente.

    Aggiungi colonna.

    Valori dei campi aggiornati:**

    • Nome visualizzato: Approvato
    • Tipo di dati: Sì/No
  4. Selezionare Fine.

  5. Seleziona Salva tabella. Aggiungi colonna.

  6. Tornare alla scheda Azioni dei repository GitHub, selezionare Esegui flusso di lavoro e selezionare il pulsante Esegui flusso di lavoro.

    Eseguire il flusso di lavoro.

  7. Dopo 5-10 secondi, viene avviato il flusso di lavoro. Selezionare il flusso di lavoro in esecuzione per monitorare lo stato di avanzamento.

    Selezionare il flusso di lavoro.

    Visualizzare il flusso di lavoro.

  8. Al termine del flusso di lavoro, passare al nuovo ramo selezionando Code e quindi Branches.

    Selezionare il branch.

  9. Selezionare il ramo creato espandendo contribute e selezionando Open pull request.

  10. Aggiungere un titolo (facoltativo) e quindi selezionare Crea pull request.

  11. Dopo gli aggiornamenti del contenuto, selezionare la scheda File modificati .

  12. Nota che le modifiche alla soluzione sono evidenziate in verde per indicare che questa sezione del file è stata aggiunta quando confrontata allo stesso file nel ramo principale.

  13. Tornare alla scheda Conversazione . Selezionare Richieste pull e quindi selezionare la richiesta pull creata in precedenza.

  14. Nella pagina Pull request selezionare Squash and merge per unire il file di soluzione aggiornato nel ramo principale. Facoltativamente, eliminare quello che ora è stato unito in main.

    Apri la richiesta pull per un nuovo ramo, visualizza le modifiche e unisci al ramo predefinito

  15. Seguire la procedura descritta nella sezione Testare il flusso di lavoro di rilascio in produzione per creare una nuova versione e verificare che la soluzione aggiornata venga distribuita nell'ambiente di produzione.

Congratulazioni, hai configurato correttamente un flusso di lavoro CI/CD di esempio usando GitHub Actions.

Vedi anche

Automatizza il tuo flusso di lavoro da idea alla produzione