Esercizio - Creare un'azione GitHub per compilare un'immagine del contenitore
In questa unità verranno completate le attività seguenti:
- Creare un'azione GitHub per implementare una pipeline di compilazione.
- Modificare il codice del servizio coupon per attivare il flusso di lavoro di compilazione.
- Monitorare lo stato del flusso di lavoro di compilazione in tempo reale.
Creare l'azione di compilazione
Il codice YAML in questa procedura definisce un'azione GitHub che:
- Si attiva quando viene eseguito il push di un commit nel codice sorgente o negli unit test del servizio di gestione dei coupon nel ramo
main. - Definisce le variabili di ambiente specifiche della fase.
- Dispone di un processo o di un set di passaggi eseguiti nello stesso strumento di esecuzione del flusso di lavoro, denominato
Build and push image to ACR.
Importante
Le condizioni di attivazione e altri artefatti di GitHub Actions o flussi di lavoro dipendono dalle app e dagli ambienti. Per semplificare la comprensione, i dettagli vengono mantenuti semplici in questo esempio. Sia la compilazione che i flussi di lavoro di distribuzione hanno come ambito modifiche al servizio prodotto perché tutti i microservizi vengono mantenuti in un unico repository. In uno scenario di produzione effettivo, ogni microservizio viene mantenuto nel proprio repository separato.
Completare i passaggi seguenti per creare l'azione di compilazione di GitHub Actions:
Vai al tuo repository forkato su GitHub e seleziona il Actions tab.
Nella pagina Get started with GitHub Actions, selezionare il collegamento set up a workflow yourself.
Nella pagina successiva incollare il codice YAML seguente nell'editor.
name: Build and deploy an app to AKS on: push: branches: ["main"] workflow_dispatch: env: # Local environment variables used later in the workflow AZURE_CONTAINER_REGISTRY: 'name of your Azure Container Registry' CONTAINER_NAME: 'productservice' RESOURCE_GROUP: 'rg-eshop' CLUSTER_NAME: 'aks-eshop' DEPLOYMENT_MANIFEST_PATH: './product.yml' DOCKER_PATH: './DockerfileProducts.acr' jobs: buildImage: permissions: contents: read id-token: write runs-on: ubuntu-latest steps: # Checks out the repository this file is in - uses: actions/checkout@v3 # Logs in with your Azure credentials stored in GitHub secrets - name: Azure login uses: azure/login@v1.4.6 with: creds: '${{ secrets.AZURE_CREDENTIALS }}' # Builds and pushes an image up to your Azure Container Registry - name: Build and push image to ACR run: | az acr build --file ${{ env.DOCKER_PATH }} --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .Sostituire il nome del Registro dei Contenitori di Azure con il nome dell'ACR creato nell'unità precedente; ad esempio acseshop186748394.
Sostituire il nome file del flusso di lavoro main.yml predefinito con azure-kubernetes-service.ymle quindi selezionare Commit changes.
Commit changes Nella schermata selezionare Commit directly to the main branche quindi selezionare Commit changes.
Hai finito di creare il flusso di lavoro di build per la tua pipeline CI/CD.
Nel terminale, esegui questo comando per visualizzare le versioni correnti dei servizi dei prodotti archiviate nell'ACR:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output tableSostituendo il AZURE_CONTAINER_REGISTRY con il nome del Registro dei Container di Azure, verrà visualizzato un risultato simile al seguente:
Result ---------------------------------------- v1
Attivare la compilazione
Il flusso di lavoro di compilazione viene attivato automaticamente non appena si esegue il commit del file del flusso di lavoro. È anche possibile attivare la compilazione manualmente.
- Nel repository, selezionare la scheda Actions.
- A sinistra, in All workflowsselezionare il Build and deploy an app to AKS flusso di lavoro e quindi selezionare Run workflow.
Monitorare la compilazione
Per visualizzare lo stato di avanzamento in tempo reale della compilazione:
Nel repository, selezionare la scheda Actions.
Selezionare l'esecuzione del flusso di lavoro più recente elencata per il flusso di lavoro Build and deploy an app to AKS. Il nome dell'esecuzione è il messaggio di commit usato nel passaggio precedente.
Selezionare il processo buildImage.
Se si attende qualche minuto, i passaggi del processo dovrebbero essere completati correttamente.
Nel terminale eseguire di nuovo questo comando per visualizzare le versioni del servizio prodotto archiviate nel Registro Azure Container.
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output tableVerrà visualizzato un output simile al seguente, che mostra che è stata aggiunta una nuova versione dell'immagine al Registro Azure Container dal flusso di lavoro di GitHub:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1

