Øvelse – Opprett en GitHub-handling for å bygge et beholderbilde
I denne enheten skal du fullføre følgende oppgaver:
- Opprett en GitHub-handling for å implementere et byggforløp.
- Endre kupongtjenestekoden for å utløse build-arbeidsflyten.
- Overvåk fremdriften i byggarbeidsflyten i sanntid.
Opprett byggehandlingen
YAML-koden i denne prosedyren definerer en GitHub-handling som:
- Utløser når en utføring sendes til kupongtjenestens kildekode eller enhetstester i den
maingrenen. - Definerer trinnspesifikke miljøvariabler.
- Har én jobb, eller ett sett med trinn som kjøres på samme arbeidsflytløper, kalt
Build and push image to ACR.
Important
Utløserbetingelser og andre artefakter av GitHub-handlinger eller arbeidsflyter avhenger av appene og miljøene. For enkel forståelse holdes detaljene enkle i dette eksemplet. Både bygg- og utrullingsarbeidsflytene er begrenset til endringer i produkttjenesten fordi alle mikrotjenestene holdes under ett enkelt repositorium. I et faktisk produksjonsscenario ville hver mikrotjeneste holdes i sitt eget separate repositorium.
Fullfør følgende fremgangsmåte for å opprette byggehandlingen For GitHub-handlinger:
Gå til det forgrenede repositoriet i GitHub, og velg fanen Actions .
Velg koblingen Get started with GitHub Actions på set up a workflow yourself-siden.
Lim inn følgende YAML-kode i redigeringsprogrammet på neste side.
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 }} .Erstatt navnet på Azure Container Registry- med ACR-navnet du opprettet i den forrige enheten. for eksempel acseshop186748394.
Erstatt standard arbeidsflyt main.yml filnavn med azure-kubernetes-service.yml, og velg deretter Commit changes.
Velg Commit changespå Commit directly to the main branch skjermen, og velg Commit changesderetter .
Du er ferdig med å opprette build-arbeidsflyten for CI/CD-datasamlebåndet.
Kjør denne kommandoen i terminalen for å vise gjeldende versjoner av produkttjenesten som er lagret i acr:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output tableHvis du erstatter AZURE_CONTAINER_REGISTRY med navnet på ACR, bør du se utdata som ligner på følgende:
Result ---------------------------------------- v1
Utløse bygget
Build-arbeidsflyten utløses automatisk så snart du utfører arbeidsflytfilen. Du kan også utløse bygget manuelt.
- Velg fanen Actions i repositoriet.
- Velg All workflows arbeidsflyt under Build and deploy an app to AKStil venstre, og velg deretter Run workflow.
Overvåk bygget
Slik viser du fremdriften i sanntid for bygget:
Velg fanen Actions i repositoriet.
Velg den nyeste arbeidsflytkjøringen som er oppført for Build and deploy an app to AKS arbeidsflyten. Navnet på kjøringen er utføringsmeldingen du brukte i forrige trinn.
Velg buildImage jobb.
Hvis du venter noen minutter, bør trinnene i jobben fullføres.
Kjør denne kommandoen på nytt i terminalen for å vise versjonene av produkttjenesten som er lagret i acr.
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output tableDu bør se utdata som ligner på følgende som viser at en ny bildeversjon er lagt til i ACR fra GitHub-arbeidsflyten:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1