Ejercicio: Creación de una acción de GitHub para compilar una imagen de contenedor
En esta unidad, completará las siguientes tareas:
- Cree una acción de GitHub para implementar un pipeline de compilación.
- Modifique el código del servicio de cupones para desencadenar el flujo de trabajo de compilación.
- Supervise el progreso del flujo de trabajo de compilación en tiempo real.
Crear la acción de compilación
El código YAML de este procedimiento define una acción de GitHub que:
- Se desencadena cuando se inserta una confirmación en el código fuente o las pruebas unitarias del servicio de cupones en la rama
main. - Define variables de entorno específicas del paso.
- Tiene un trabajo o un conjunto de pasos que se ejecutan en el mismo ejecutor de flujo de trabajo, denominado
Build and push image to ACR.
Importante
Las condiciones del desencadenador y otros artefactos de flujos de trabajo o Acciones de GitHub dependen de las aplicaciones y los entornos. Para facilitar la comprensión, los detalles se mantienen sencillos en este ejemplo. Tanto la compilación como los flujos de trabajo de implementación se limitan a los cambios del servicio de producto porque todos los microservicios se mantienen en un único repositorio. En un escenario de producción real, cada microservicio se mantendría en su propio repositorio independiente.
Complete los pasos siguientes para crear la acción de compilación de GitHub Actions:
Vaya al repositorio bifurcado en GitHub y seleccione la Actions pestaña.
En la página Get started with GitHub Actions, seleccione el vínculo set up a workflow yourself.
En la página siguiente, pegue el siguiente código YAML en el 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 }} .Reemplace el nombre de su instancia de Azure Container Registry por el nombre de ACR que creó en la unidad anterior; por ejemplo, acseshop186748394.
Reemplace el nombre de archivo de flujo de trabajo main.yml predeterminado por azure-kubernetes-service.ymly, a continuación, seleccione Commit changes.
En la Commit changes pantalla, seleccione Commit directly to the main branchy, a continuación, seleccione Commit changes.
Ha terminado de crear el flujo de trabajo de compilación para la canalización de CI/CD.
En el terminal, ejecute este comando para ver las versiones actuales del servicio de producto almacenados en ACR:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output tableAl reemplazar el AZURE_CONTAINER_REGISTRY por el nombre de su ACR, debería ver una salida similar a la siguiente:
Result ---------------------------------------- v1
Iniciar la compilación
El flujo de trabajo de compilación se desencadena automáticamente en cuanto se confirma el archivo de flujo de trabajo. También puede desencadenar la compilación manualmente.
- En tu repositorio, selecciona la pestaña Actions.
- A la izquierda, en All workflows, seleccione el Build and deploy an app to AKS flujo de trabajo y, a continuación, seleccione Run workflow.
Supervisar la compilación
Para ver el progreso en tiempo real del proceso de compilación:
En tu repositorio, selecciona la pestaña Actions.
Seleccione la ejecución más reciente enumerada para el flujo de trabajo Build and deploy an app to AKS. El nombre de la ejecución es el mensaje de confirmación que usó en el paso anterior.
Seleccione el buildImage puesto.
Si espera unos minutos, los pasos del trabajo deberían completarse con éxito.
En el terminal, vuelva a ejecutar este comando para ver las versiones del servicio de producto almacenados en ACR.
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output tableDebería ver una salida similar a la siguiente que muestra que se ha agregado una nueva versión de imagen al ACR desde el flujo de trabajo de GitHub:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1

