Cvičení – vytvoření akce GitHubu pro sestavení image kontejneru
V této lekci dokončíte následující úkoly:
- Vytvořte akci GitHubu pro implementaci kanálu buildu.
- Upravte kód kuponové služby tak, aby aktivoval pracovní postup sestavení.
- Monitorujte průběh pracovního postupu sestavení v reálném čase.
Vytvoření akce sestavení
Kód YAML v tomto postupu definuje akci GitHubu, která:
- Aktivuje se, když se potvrzení odešle do zdrojového kódu kuponové služby nebo testů jednotek ve
main
větvi. - Definuje proměnné prostředí určitého kroku.
- Má jednu úlohu nebo sadu kroků, které se spouštějí na stejném spouštěči pracovních postupů s názvem
Build and push image to ACR
.
Důležité
Podmínky triggerů a další artefakty GitHub Actions nebo pracovních postupů závisejí na aplikacích a prostředích. Pro usnadnění porozumění jsou podrobnosti v tomto příkladu jednoduché. Pracovní postupy sestavení i nasazení jsou vymezeny na změny služeb produktů, protože všechny mikroslužby se uchovávají v jednom úložišti. Ve skutečném produkčním scénáři by každá mikroslužba byla uložena ve vlastním samostatném úložišti.
Provedením následujících kroků vytvořte akci sestavení GitHub Actions:
Přejděte do rozvětvovaného úložiště na GitHubuActions a vyberte kartu.
Get started with GitHub Actions Na stránce vyberte set up a workflow yourself odkaz.
Na další stránce vložte do editoru následující kód YAML.
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 }} .
Nahraďte název služby Azure Container Registry názvem ACR, který jste vytvořili v předchozí lekci, například acseshop186748394.
Nahraďte výchozí název azure-kubernetes-service.ymlsouboru pracovního postupu main.yml názvem a pak vyberte Commit changes.
Commit changes Na obrazovce vyberte Commit directly to the main branch a pak vyberte Commit changes.
Dokončili jste vytvoření pracovního postupu sestavení kanálu CI/CD.
Spuštěním tohoto příkazu v terminálu zobrazte aktuální verze služby produktu uložené v ACR:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
Nahraďte AZURE_CONTAINER_REGISTRY názvem služby ACR, měl by se zobrazit výstup podobný následujícímu:
Result ---------------------------------------- v1
Aktivace sestavení
Pracovní postup sestavení se aktivuje automaticky, jakmile potvrdíte soubor pracovního postupu. Sestavení můžete aktivovat také ručně.
- V úložišti vyberte Actions kartu.
- Vlevo v části All workflows, vyberte Build and deploy an app to AKS pracovní postup a pak vyberte Run workflow.
Monitorování sestavení
Zobrazení průběhu sestavení v reálném čase:
V úložišti vyberte Actions kartu.
Vyberte nejnovější běh pracovního postupu Build and deploy an app to AKS. Název spuštění je zpráva potvrzení, kterou jste použili v předchozím kroku.
buildImage Vyberte úlohu.
Pokud počkáte několik minut, měly by se kroky v úloze úspěšně dokončit.
V terminálu spusťte tento příkaz znovu a zobrazte verze služby produktu uložené v ACR.
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
Měl by se zobrazit výstup podobný následujícímu, který ukazuje, že se do ACR přidala nová verze image z pracovního postupu GitHubu:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1