Ćwiczenie — tworzenie akcji usługi GitHub w celu utworzenia obrazu kontenera
W trakcie tej lekcji wykonasz następujące czynności:
- Utwórz akcję usługi GitHub w celu zaimplementowania potoku kompilacji.
- Zmodyfikuj kod usługi kuponu, aby wyzwolić przepływ pracy kompilacji.
- Monitoruj postęp przepływu pracy kompilacji w czasie rzeczywistym.
Tworzenie akcji kompilacji
Kod YAML w tej procedurze definiuje akcję usługi GitHub, która:
- Wyzwala wyzwalane po wypchnięciu zatwierdzenia do kodu źródłowego usługi kuponowej lub testów jednostkowych w
main
gałęzi. - Definiuje zmienne środowiskowe specyficzne dla poszczególnych kroków.
- Ma jedno zadanie lub zestaw kroków wykonywanych w tym samym module uruchamiającym przepływ pracy o nazwie
Build and push image to ACR
.
Ważne
Warunki wyzwalania i inne artefakty funkcji GitHub Actions lub przepływów pracy zależą od aplikacji i środowisk. Aby ułatwić zrozumienie, szczegółowe informacje są proste w tym przykładzie. Zarówno kompilacja, jak i przepływy pracy wdrażania są ograniczone do zmian usługi produktu, ponieważ wszystkie mikrousługi są przechowywane w jednym repozytorium. W rzeczywistym scenariuszu produkcyjnym każda mikrousługa będzie przechowywana we własnym oddzielnym repozytorium.
Wykonaj następujące kroki, aby utworzyć akcję kompilacji funkcji GitHub Actions:
Przejdź do rozwidlenia repozytorium w usłudze GitHub, wybierz kartę Actions .
Get started with GitHub Actions Na stronie wybierz set up a workflow yourself link.
Na następnej stronie wklej następujący kod YAML do edytora.
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 }} .
Zastąp nazwę usługi Azure Container Registry nazwą ACR utworzoną w poprzedniej lekcji, na przykład acseshop186748394.
Zastąp domyślną nazwę pliku przepływu pracy main.yml ciągiem azure-kubernetes-service.yml, a następnie wybierz pozycję Commit changes.
Na ekranie Commit changes wybierz pozycję Commit directly to the main branch , a następnie wybierz pozycję Commit changes.
Ukończono tworzenie przepływu pracy kompilacji dla potoku ciągłej integracji/ciągłego wdrażania.
W terminalu uruchom to polecenie, aby wyświetlić bieżące wersje usługi produktu przechowywane w usłudze ACR:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
Zastępując AZURE_CONTAINER_REGISTRY nazwą usługi ACR, powinny zostać wyświetlone dane wyjściowe podobne do następujących:
Result ---------------------------------------- v1
Wyzwalanie kompilacji
Przepływ pracy kompilacji jest wyzwalany automatycznie po zatwierdzeniu pliku przepływu pracy. Możesz również ręcznie wyzwolić kompilację.
- W repozytorium wybierz kartę Actions .
- Po lewej stronie w obszarze All workflowswybierz Build and deploy an app to AKS przepływ pracy, a następnie wybierz pozycję Run workflow.
Monitorowanie kompilacji
Aby wyświetlić postęp kompilacji w czasie rzeczywistym:
W repozytorium wybierz kartę Actions .
Wybierz najnowszy przebieg przepływu pracy wymieniony dla przepływu pracy Build and deploy an app to AKS. Nazwa przebiegu to komunikat zatwierdzenia użyty w poprzednim kroku.
buildImage Wybierz zadanie.
Jeśli zaczekasz kilka minut, kroki w zadaniu powinny zakończyć się pomyślnie.
W terminalu ponownie uruchom to polecenie, aby wyświetlić wersje usługi produktu przechowywane w usłudze ACR.
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
Powinny zostać wyświetlone dane wyjściowe podobne do następujących, które pokazują, że nowa wersja obrazu została dodana do usługi ACR z przepływu pracy usługi GitHub:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1