Oefening: een GitHub-actie maken om een containerinstallatiekopieën te maken
In dit gedeelte voert u de volgende taken uit:
- Maak een GitHub-actie om een build-pijplijn te implementeren.
- Wijzig de couponservicecode om de buildwerkstroom te activeren.
- Controleer de voortgang van de buildwerkstroom in realtime.
De buildactie maken
De YAML-code in deze procedure definieert een GitHub-actie die:
- Triggers wanneer een doorvoer wordt gepusht naar de broncode of eenheidstests van de couponservice in de
main
vertakking. - Definieert specifieke omgevingsvariabelen voor de stap.
- Heeft één taak of set stappen die worden uitgevoerd op dezelfde werkstroomloper, met de naam
Build and push image to ACR
.
Belangrijk
Triggervoorwaarden en andere artefacten van GitHub Actions of werkstromen hangen af van de apps en omgevingen. Voor meer begrip worden details in dit voorbeeld eenvoudig gehouden. Zowel de build- als de implementatiewerkstromen zijn gericht op wijzigingen in de productservice, omdat alle microservices onder één opslagplaats worden bewaard. In een werkelijk productiescenario wordt elke microservice in hun eigen afzonderlijke opslagplaats bewaard.
Voer de volgende stappen uit om de buildactie gitHub Actions te maken:
Ga naar uw geforkte opslagplaats in GitHub en selecteer het Actions tabblad.
Selecteer de koppeling op de Get started with GitHub Actions set up a workflow yourself pagina.
Plak op de volgende pagina de volgende YAML-code in de 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 }} .
Vervang de naam van uw Azure Container Registry door de ACR-naam die u in de vorige les hebt gemaakt, bijvoorbeeld acseshop186748394.
Vervang de standaardnaam van het werkstroombestand main.yml door azure-kubernetes-service.ymlen selecteer Commit changes.
Selecteer Commit directly to the main branch en selecteer Commit changesvervolgens op het Commit changes scherm.
U bent klaar met het maken van de build-werkstroom voor uw CI/CD-pijplijn.
Voer in uw terminal deze opdracht uit om de huidige versies van de productservice weer te geven die zijn opgeslagen in de ACR:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
Als u de AZURE_CONTAINER_REGISTRY vervangt door de naam van uw ACR, ziet u uitvoer die er ongeveer als volgt uitziet:
Result ---------------------------------------- v1
De build activeren
De buildwerkstroom wordt automatisch geactiveerd zodra u het werkstroombestand doorvoert. U kunt de build ook handmatig activeren.
- Selecteer het Actions tabblad in uw opslagplaats.
- Selecteer aan de linkerkant Build and deploy an app to AKS de All workflowswerkstroom en selecteer Run workflowvervolgens .
De build bewaken
De realtime voortgang van de build weergeven:
Selecteer het Actions tabblad in uw opslagplaats.
Selecteer de meest recente uitvoering van de werkstroom die wordt weergegeven voor de werkstroom Build and deploy an app to AKS. De naam van de uitvoering is het doorvoerbericht dat u in de vorige stap hebt gebruikt.
Selecteer de buildImage taak.
Als u een paar minuten wacht, moeten de stappen in de taak zijn voltooid.
Voer deze opdracht opnieuw uit in uw terminal om de versies van de productservice weer te geven die zijn opgeslagen in de ACR.
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
Als het goed is, ziet u uitvoer die lijkt op het volgende, waarin een nieuwe versie van de installatiekopieën is toegevoegd aan de ACR vanuit de GitHub-werkstroom:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1